sql 条件判断
case
when then ''
else ''
end
消除重复
distinct
select distinct username from user
联合
union 注意两个sql语句显示的类需要相同,如果查询数据相同会去除相同的只显示一条
union all 解决上面的问题
select username from user where id = 1
union
select username from user where id = 2
判断空转为0
ifnull(,)
select ifnull(null,0) from user
ORDER BY使用
ORDER BY 后可加2个字段,用英文逗号隔开。
f1用升序, f2降序,sql该这样写
ORDER BY f1, f2 DESC
也可以这样写,更清楚:
ORDER BY f1 ASC, f2 DESC
如果都用降序,必须用两个desc
ORDER BY f1 DESC, f2 DESC
查找字段为空
字符串 ‘ ’
其他的null
select * from product where pro_count is null or pro_count = ''
删除重复字段保留最小id
表结构 users
id | name |
---|---|
1 | 张三 |
2 | 张三 |
3 | 王五 |
DELETE
FROM
users
WHERE
id NOT IN ( SELECT id FROM ( SELECT id FROM users GROUP BY NAME ) u )
两个表的交集
表结构
s表
id | name |
---|---|
1 | 张三 |
2 | 张三 |
3 | 王五 |
sc表
id | name |
---|---|
1 | 张三 |
2 | 张三 |
SELECT
sid
FROM
s
WHERE
sid IN ( SELECT scid FROM sc )
交集之外的其他
SELECT
sid
FROM
( SELECT sid FROM s UNION SELECT scid FROM sc ) s
WHERE
s.sid NOT IN ( SELECT sid FROM s WHERE sid IN ( SELECT scid FROM sc ) )