Le problème de cas dans MySQL
Le problème de cas dans MySQL remonte à la conception de la base de données. MySQL est sensible à la casse pour les identifiants, y compris les noms de tables, de colonnes, de variables, etc. Cela peut nous causer bien des ennuis dans certains cas.
Par exemple, lorsque nous créons une table, nous spécifions le nom de la table étudiant. Si nous utilisons ultérieurement l'instruction SELECT pour interroger la table, nous ne pouvons pas utiliser Student ou STUDENT et d'autres formulaires de cas similaires, sinon la base de données MySQL renverra un message d'erreur.
Comment effectuer des requêtes insensibles à la casse dans MySQL
Utilisez le mot-clé BINARY
Lorsque vous effectuez des requêtes, utilisez le mot-clé BINARY pour rendre MySQL insensible à la casse. Par exemple, nous pouvons utiliser l'instruction suivante pour interroger la table student :
SELECT * FROM student WHERE BINARY name = 'Tom';
De cette façon, MySQL renverra les résultats corrects quelle que soit la casse du nom. Bien que cette approche puisse résoudre le problème, l'utilisation du mot-clé BINARY dans un ensemble de données relativement volumineux peut affecter les performances de la requête, la solution au problème n'est donc pas élégante.
Utilisez la fonction LOWER
Pour résoudre le problème du cas, vous pouvez utiliser la fonction LOWER dans MySQL pour interroger. La fonction LOWER convertit une chaîne en lettre minuscule. Par exemple, nous pouvons utiliser l'instruction suivante pour interroger la table student :
SELECT * FROM student WHERE LOWER(name) = 'tom';
De cette façon, MySQL convertira toutes les chaînes du champ name en minuscules, puis les comparera avec 'tom'. En utilisant cette approche, nous pouvons éviter l'impact sur les performances des requêtes lié à l'utilisation du mot-clé BINARY.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!