I MySQL kan booleska uttryck användas som heltal -- med 0 för falskt och 1 för sant. Så följande fungerar:
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%';
EDIT:
Om MySQL kan du också uttrycka denna fråga som:
SELECT p.*,
((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM myprods p
HAVING hits > 0;
Användningen av having
i detta sammanhang är en SQL-tillägg och fungerar inte i andra databaser. Men det tillåter en fråga att hänvisa till ett kolumnalias för filtrering, utan att använda en underfråga.