2017-03-06 19 views
1

SELECT COUNT

SELECT COUNT(*) FROM questions 
WHERE questions.text LIKE "%some word%" 
OR questions.text LIKE "%another word%" 
OR questions.text LIKE "%yet another word%" 
AND questions.field = "test" 
... more WHERE conditions 

ではなく、3つすべてLIKEの文に対応した行よりも、各LIKE用語の内訳を返すための最良の方法は何ですか?

私はLIKE用語ごとに別々のSELECT文を持つことで、そうすることが可能である知っているが、1つのSELECTのステートメント、または少し短いかもしれない何かにこれをラップする方法はありますか?

答えて

1

一致する値の合計と

SELECT 
    sum(case when questions.text LIKE "%some word%" then 1 else 0 end) as test1 
    , sum(case when questions.text LIKE "%another word%" then 1 else 0 end) as test2 
    , sum(case when questions.text LIKE "%yet another word%" then 1 else 0 end) as test3 
WHERE questions.field = "test" 
... more WHERE conditions 
あなたが選択する場合に使用することができます