2

私はクエリで年齢フィルターを使用しています。以下のように複数の年齢が選択されています

18
歳未満 25
歳未満 25~34歳 35~44歳 45~54歳
55~64歳
65

以上

以下のように、年齢に関してmysqlから行を選択します

select * from users where isactive=1 
AND (DateOfBirth > (CURDATE() - INTERVAL  $Age YEAR) OR $Age = 0)

$age 変数 = 25-34 の場合、年齢に case ステートメントを追加して、関連するものを選択できるようにします

または、次のようなケース内での書き方とステートメントの書き方を教えてください。

case $age
when $age='25' AND (DateOfBirth > (CURDATE() - INTERVAL  $Age YEAR) OR $Age = 0)
end case

これは完全なクエリで、検索結果のみで正常に機能しています。複数の年齢を超える場合は、case ステートメントで年齢フィルターが必要です。クエリは次のとおりです。

SELECT * FROM user WHERE IsDeleted!=1 AND (IsMale = $Gender OR $Gender = 2)

/// AT THIS POINT I NEED to add multple case to filter it by ages (after gender filter)

4

1 に答える 1

1

これはうまくいくはずです:

CASE
  WHEN $age ='25' 
       AND 
       (
         ($Age = 0) 
         OR 
         (DateOfBirth > (CURDATE() - INTERVAL  $Age YEAR))
       )
  Then ...
END
于 2012-12-12T13:33:39.627 に答える