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 正解!一個簡單的子查詢
相關文章:
