mysql的一些使用语句写法

记录一下,方便自己以后查看,以后会随时添加
1,查询重复数据
select project_id,house_location,count(*) from house_price group by house_location having count(house_location)>1;
2,删除重复的数据,并保留一条
DELETE FROM house_price WHERE id IN (SELECT ub.rowid FROM ( SELECT min(id) rowid FROM house_price t2 WHERE t2.project_id = 1358 GROUP BY t2.house_location ) ub)
3,对字符串排序问题,我的数据里有一列是字符串类型的数字和字母和/的混合数据。我仍然想按照数字的大小,由小到大排序
SELECT *,(unit_no+0 > 0) boolNum FROM house_price WHERE project_id = 1400 GROUP BY unit_no
ORDER BY boolNum DESC, (unit_no+0) ASC, unit_no;结果如下:
在这里插入图片描述
4,对null的排序。
null值排在最后,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0
select * from A order by IF(ISNULL(a),1,0),a desc
null值排在最前,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0
select * from A order by IF(ISNULL(a),0,1),a desc
5,find_in_set 查询某个值是否存在
SELECT FIND_IN_SET(‘b’, ‘a,b,c,d’);
我是在tp5.0中使用了。所以查询了一下。cansee_user_ids是一串数字,以逗号拼接。例如
1,2,3,16

 $list = Db::name('file_library')
        ->where("cansee_user_ids = 0 OR FIND_IN_SET(".$user_id.",cansee_user_ids)")
        ->where($where)
        ->page($page,$size)->select();

6,tp5.1的where查询为null或者not null
$where[] = [‘answer’,‘not null’, ‘’]; 注意最后有个引号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值