mysql - 请教一条sql
问题描述
当前记录里,如果某个手机号下存在TRANSFER_AMOUNT为null,这个手机号就不会被查出来,即当前四条记录里真正应该只查出最后一条。
问题解答
回答1:select * from table where MOBILE_PHONE_NO not in ( select MOBILE_PHONE_NO from table where TRANSFER_AMOUNT is null)回答2:
@RandyO 的回答从结果看应该是没问题的,如果从性能方面考虑,可以尝试下面的写法:
select * from table t1 where not exists ( select 1 from table t2 where t2.MOBILE_PHONE_NO = t1.MOBILE_PHONE_NO and t2.TRANSFER_AMOUNT is null limit 1)回答3:
你这四条记录中的TRANSFER_AMOUNT值有三条记录是不为null,如果是TRANSFER_AMOUNT为null,应该查询出来三条记录,还是我没理解你的意思呢?
回答4:where TRANSFER_AMOUNT is not null order by RESV_ID desc limit 1
即 TRANSFER_AMOUNT 不为NULL; 根据RESV_ID 倒序排列;只取一条结果.
回答5:SELECT * FROM 表 WHERE MOBILE_PHONE_NO != (SELECT MOBILE_PHONE_NO FROM 表 WHERE TRANSFER_AMOUNT =’’)我也刚学的,不知道这么写行不行
回答6:RandyO 正解!一个简单的子查询
相关文章:
1. python - 搜索大文件(20G左右)2. javascript - weex和node,js到底是怎样一个关系呢?3. css - 百分比min-height的一个问题4. javascript - 小米浏览器中,图片导致fixed定位的元素无法显示5. Android-studio导入.so库问题?6. 用tp5框架写sql语句7. angular.js - JS或者angular如何写递归呢?8. angular.js - ng-grid 和tabset一起用时,grid width默认特别小9. 解密 - 怎么用python来解读一些中文乱码?10. mysql中的join on查询语句的on能否改为where
