2013.10.13 数据库SQL:很好的SQL语句

MYSQL

14.LOCATE 返回在目标字符串中第一次出现指定字符的位置,如下:结果为 2

SELECT LOCATE('a','baa')

13.排序,并将sort为null的行排在is not null 的行之后,null默认是最小的,所以一般的排序,null的数据会排在最前面

// 先按照sort is null ,顺序进行排列(sort为null的就排在了后面)再在排好序的基础上,对sort按顺序进行排列

// sort is null,如果sort为null,结果为1,否则结果为0;mysql中没有true/false

SELECT * FROM standard_switchover ORDER BY sort IS NULL, sort

12.查询出每一条数据的序号

SELECT (@rowNum:=@rowNum+1) AS rowno, p.* from project p,(Select (@rowNum :=0))b

11.获取表的所有字段

SELECT
GROUP_CONCAT(column_name)
FROM
information_schema.COLUMNS
WHERE table_name = 'bt_users'



10.查询结果中,日期减少一天显示

SELECT visit_time,DATE_SUB(visit_time,INTERVAL 1 day) time from visit_remind ORDER BY visit_time DESC


1.将查询结果中的0/1分别显示女/男

SELECT CASE sex
WHEN 1 THEN '男'
WHEN 0 THEN '女'
ELSE '不确定'
END

FROM carsystem.user

2.删除表的一列

alter table TEST_USER drop column age

3.只更新当天登陆的民警的退出时间

Update policemenlogin set quitdate=now() WHERE policemenId='p4' and to_days(logindate)=to_days(now())

4.查过去24小时之内的数据(内容参见《2013.10.13 事务特性、MYSQL 触发器、存储过程、函数》)

核心:checkDate >DATE_ADD(now(), INTERVAL -1 DAY)

String sql = "select * from records where vehicleId='" + vehicleId
+ "' and checkDate >DATE_ADD(now(), INTERVAL -1 DAY)"

+ " order by checkDate DESC";

DATE_ADD(now(),INTERVAL -1 DAY);系统函数,指当前时间减去1天,即过去24小时时间段内

5.按天数统计数据数量

SELECT COUNT(*),records.checkdate FROM records GROUP BY TO_DAYS(records.checkdate);

6.按月份统计数据数量

SELECT COUNT(*),records.checkdate FROM records GROUP BY MONTH(records.checkdate);

7.获取当天数据

select * from policemenlogin where DATE_FORMAT(logindate,'%Y-%m-%d')=CURDATE();//取当天数据

8.按月份分组

SELECT  DATE_FORMAT(time,'%Y%m') t,COUNT(*) '数量' FROM `user` GROUP BY PERIOD_DIFF( t,'200001');

PERIOD_DIFF( t,'200001');//返回2000年01月到t时间的总月份数

9.联合多张表数据,只更新其中一张表的数据

update point set remark='finish' where lid in(select lid from locus)

update temp t LEFT JOIN member m on t.id=m.id set t.address=m.account

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来的我比现在的我更优秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值