Dans MySQL, les expressions booléennes peuvent être utilisées comme des entiers -- avec 0 pour faux et 1 pour vrai. Ainsi, les travaux suivants :
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%';
MODIFIER :
Si MySQL, vous pouvez également exprimer cette requête comme :
SELECT p.*,
((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM myprods p
HAVING hits > 0;
L'utilisation de having
dans ce contexte est une extension SQL et ne fonctionne pas dans d'autres bases de données. Cependant, cela permet à une requête de faire référence à un alias de colonne pour le filtrage, sans utiliser de sous-requête.