Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Wildcard pour =- y en a-t-il un

LIKE est fondamentalement identique à =, sauf que LIKE vous permet d'utiliser des caractères génériques.

Ces deux requêtes renverront les mêmes résultats :

SELECT * FROM table WHERE col LIKE 'xyz';
SELECT * FROM table WHERE col='xyz';

Sans '%' dans la requête LIKE, c'est effectivement la même chose que '='.

Si vous faites une sélection sur une colonne d'entiers, vous devriez envisager d'utiliser les opérateurs IN() ou BETWEEN. Il semble que vous ayez deux conditions distinctes qui doivent être gérées dans votre code, plutôt que dans la requête, car vos conditions dictent que vous avez besoin d'au moins deux types de requêtes différents.

Edit:je dois préciser que LIKE et =ne sont similaires que dans l'utilisation normale et banale de la comparaison de chaînes. Vous devriez vérifier le Manuel MySQL pour plus de détails sur son fonctionnement, car il existe des situations où ce n'est pas la même chose (comme les ensembles de langues).