In MySQL kunnen booleaanse uitdrukkingen worden gebruikt als gehele getallen -- met 0 voor onwaar en 1 voor waar. Dus het volgende werkt:
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%';
BEWERKEN:
Als MySQL, kunt u deze vraag ook uitdrukken als:
SELECT p.*,
((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM myprods p
HAVING hits > 0;
Het gebruik van having
in deze context is een SQL-extensie en werkt niet in andere databases. Maar het staat wel toe dat een zoekopdracht naar een kolomalias verwijst om te filteren, zonder een subquery te gebruiken.