MySQL中使用case when 語句實現(xiàn)多條件查詢的方法
更新時間:2010年12月17日 13:49:58 作者:
今天在一個應用中使用到了一個比較特殊的數(shù)據(jù)查詢要求。需要的朋友可以參考下。
舉例如下:
數(shù)據(jù)表為DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5
要求是查詢DemoTable中,condition1,condition2,condition3,condition4,condition5五個字段中符合任意兩個或兩個以上的條件的內容。
可使用case when來實現(xiàn)這個條件,需要嵌套子查詢語句
sql語句代碼示例如下:
SELECT * FROM DemoTable
WHERE ((SELECT CASE 1 WHEN condition1滿足條件 THEN 1 ELSE 0 END FROM DemoTable )
+(SELECT CASE 1 WHEN condition2滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition3滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition4滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition5滿足條件 THEN 1 ELSE 0 END FROM DemoTable))>=2
數(shù)據(jù)表為DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5
要求是查詢DemoTable中,condition1,condition2,condition3,condition4,condition5五個字段中符合任意兩個或兩個以上的條件的內容。
可使用case when來實現(xiàn)這個條件,需要嵌套子查詢語句
sql語句代碼示例如下:
復制代碼 代碼如下:
SELECT * FROM DemoTable
WHERE ((SELECT CASE 1 WHEN condition1滿足條件 THEN 1 ELSE 0 END FROM DemoTable )
+(SELECT CASE 1 WHEN condition2滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition3滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition4滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition5滿足條件 THEN 1 ELSE 0 END FROM DemoTable))>=2
相關文章
MySQL數(shù)據(jù)庫遷移快速導出導入大量數(shù)據(jù)
今天小編就為大家分享一篇關于MySQL數(shù)據(jù)庫遷移快速導出導入大量數(shù)據(jù),小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03mysql 5.7.17 安裝配置方法圖文教程(CentOS7)
這篇文章主要為大家詳細介紹了CentOS7下mysql 5.7.17 安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下2016-12-12一文搞懂Mysql中的共享鎖、排他鎖、悲觀鎖、樂觀鎖及使用場景
剛開始學習MySQL中鎖的時候,網上一查出來一堆,什么表鎖、行鎖、讀鎖、寫鎖、悲觀鎖、樂觀鎖等等等,直接整個人就懵了,下面這篇文章主要給大家介紹了關于Mysql中共享鎖、排他鎖、悲觀鎖、樂觀鎖及使用場景的相關資料,需要的朋友可以參考下2022-07-07隨機生成八位優(yōu)惠碼并保存至Mysql數(shù)據(jù)庫
這篇文章主要介紹了隨機生成八位優(yōu)惠碼并保存至Mysql數(shù)據(jù)庫的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-02-02