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 sexWHEN 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