MYSQL多字段聯合IN用法


業務場景:

需要查詢A中心2016出生得小孩,B中心2015出生得小孩,C中心2014出生得小孩

常規寫法:

寫法一:

SELECT * FROM t_child WHERE center_id = 'A' AND birth_year = 2016 union all

SELECT * FROM t_child WHERE center_id = 'B' AND birth_year = 2015 union all

SELECT * FROM t_child WHERE center_id = 'C' AND birth_year = 2014;

寫法二

SELECT * FROM  t_child WHERE (center_id='A' AND birth_year = 2016)

               OR (center_id = 'B' AND birth_year  = 2015)

               OR (center_id = 'C' AND birth_year = 2014);

 

這是當條件個數比較少的時候是適用的,且語句不適合於動態拼接條件,如果用In的話就可以解決以上兩個問題了。

使用組合IN的寫法:

SELECT * FROM t_child WHERE (center_id,birth_year ) in ( ('A',2016), ('B',2015), ('C',2014) )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM