MySQLでcase when文を使用して多条件クエリーを実現する方法

757 ワード

例を次に示します.
データテーブルはDemoTable、フィールドはid、condition 1、condition 2、condition 3、condition 4、condition 5
要求は、クエリーDemoTable、condition 1、condition 2、condition 3、condition 4、condition 5の5つのフィールドで任意の2つ以上の条件を満たす内容です.
case whenを使用してこの条件を実装するには、サブクエリ文をネストする必要があります.
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