W MySQL wyrażenia logiczne mogą być używane jako liczby całkowite — z 0 oznacza fałsz, a 1 oznacza prawdę. Tak więc działają następujące:
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%';
EDYCJA:
W przypadku MySQL możesz również wyrazić to zapytanie jako:
SELECT p.*,
((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM myprods p
HAVING hits > 0;
Użycie having
w tym kontekście jest rozszerzeniem SQL i nie działa w innych bazach danych. Pozwala jednak zapytaniu odnosić się do aliasu kolumny w celu filtrowania, bez użycia podzapytania.