MySQLでは、ブール式を整数として使用できます。0はfalse、1はtrueです。したがって、次のように機能します。
SELECT p.*,
((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM myprods p
WHERE name LIKE '%samsung%' OR name LIKE '%galaxy%' OR name LIKE '%s4%';
編集:
MySQLの場合、このクエリを次のように表現することもできます:
SELECT p.*,
((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM myprods p
HAVING hits > 0;
having
の使用 このコンテキストではSQL拡張機能であり、他のデータベースでは機能しません。ただし、サブクエリを使用せずに、クエリでフィルタリング用の列エイリアスを参照することはできます。