В 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 разширение и не работи в други бази данни. Но той позволява на заявка да се отнася до псевдоним на колона за филтриране, без да се използва подзаявка.