Mysql略复杂命令总结

例子1:获取 Employee 表中第二高的薪水(Salary),没有第二高的则返回null

select ifnull((select distinct Salary from Employee order by Salary desc limit 1, 1), null) as SecondHighestSalary;

解析:
ifnull(A, B) : 如果A不为空则返回A,为空则返回B
distinct Salary : 单独获取Salary 列,并且去除重复
limit a, b : 排序后从a行开始,总共拿b个数据。a从0 开始计

例子2: mysql数据直接导出成文件

  1. 先查看这个变量指示的路径
    SHOW VARIABLES LIKE "secure_file_priv";
  2. 再导出文件
select a.id,c.sort,a.keyword1 from answer as a inner join classify as c on a.classify=c.id where a.static=3 into outfile '/var/lib/mysql-files/user.xls';

例子3: 过滤字段长度为一个的数据

SELECT * FROM material WHERE CHAR_LENGTH(two_name) < 2;

例子4: 查询列是数字的数据

select * from wx_user_waybill_analyze where (speed REGEXP '[^0-9.]')=1; //查询speed列不是数字的数据
select * from wx_user_waybill_analyze where (speed REGEXP '[^0-9.]')=0; //查询speed列是数字的数据

posted @ 2020-06-11 14:48  wanglai  阅读(176)  评论(0编辑  收藏  举报