Comment puis-je ignorer la différence entre majuscules et minuscules lors de la recherche avec MySQLComment puis-je ignorer la différence entre majuscules et minuscules lors de la recherche avec MySQL
Comment puis-je ignorer la différence entre majuscules et minuscules lors de la recherche avec MySQL
Répondre
Faites quelque chose comme ceci:
SELECT user
FROM users
WHERE UPPER(user) = UPPER('moustafa');
Fondamentalement vous convertissez votre résultat à un cas et comparez-le par rapport au terme de recherche qui est également converti en majuscules, ignorant ainsi le cas.
Généralement, vous devez utiliser WHERE UPPER (COLUMNNAME) = UPPER ('valuetocompare').
Alternativement, vous culd utilisez where upper (Columnname) comme UPPER ('% ValueToCompare%) si vous voulez faire une recherche de sous-chaîne
vous pouvez stocker les données dans le mySQL en minuscules et juste effectuer des requêtes dessus.
Les fonctions UPPER
et LOWER
peuvent être utilisés, mais vous pouvez également affecter la sensibilité à la casse en sélectionnant le type classement approprié et/ou de la colonne.
Par exemple, latin1_general_cs
est sensible à la casse à la fois VARCHAR
et VARBINARY
:
DROP TABLE IF EXISTS `case_sensitive`;
CREATE TABLE `case_sensitive` (
`id` INT NOT NULL AUTO_INCREMENT,
`nonbinary` VARCHAR(255),
`binary` VARBINARY(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB COLLATE latin1_general_cs;
INSERT INTO `case_sensitive` (`nonbinary`, `binary`) VALUES ('A', 'A');
SELECT * FROM `case_sensitive` WHERE `nonbinary` = 'A';
+----+-----------+--------+
| id | nonbinary | binary |
+----+-----------+--------+
| 1 | A | A |
+----+-----------+--------+
1 row in set (0.00 sec)
SELECT * FROM `case_sensitive` WHERE `binary` = 'A';
+----+-----------+--------+
| id | nonbinary | binary |
+----+-----------+--------+
| 1 | A | A |
+----+-----------+--------+
1 row in set (0.00 sec)
SELECT * FROM `case_sensitive` WHERE `nonbinary` = 'a';
Empty set (0.00 sec)
SELECT * FROM `case_sensitive` WHERE `binary` = 'a';
Empty set (0.00 sec)
Alors que latin1_general_ci
est insensible à la casse avec VARCHAR
, et sensible à la casse avec VARBINARY
:
DROP TABLE IF EXISTS `case_insensitive`;
CREATE TABLE `case_insensitive` (
`id` INT NOT NULL AUTO_INCREMENT,
`nonbinary` VARCHAR(255),
`binary` VARBINARY(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB COLLATE latin1_general_ci;
INSERT INTO `case_insensitive` (`nonbinary`, `binary`) VALUES ('A', 'A');
SELECT * FROM `case_insensitive` WHERE `nonbinary` = 'A';
+----+-----------+--------+
| id | nonbinary | binary |
+----+-----------+--------+
| 1 | A | A |
+----+-----------+--------+
1 row in set (0.00 sec)
SELECT * FROM `case_insensitive` WHERE `binary` = 'A';
+----+-----------+--------+
| id | nonbinary | binary |
+----+-----------+--------+
| 1 | A | A |
+----+-----------+--------+
SELECT * FROM `case_insensitive` WHERE `nonbinary` = 'a';
+----+-----------+--------+
| id | nonbinary | binary |
+----+-----------+--------+
| 1 | A | A |
+----+-----------+--------+
SELECT * FROM `case_insensitive` WHERE `binary` = 'a';
Empty set (0.00 sec)
Vous devriez Choisissez donc un type de collation et de colonne le mieux adapté à vos besoins. Vous trouverez plus d'informations ici:
Sensibilité à la casse dans la chaîne Recherches
http://dev.mysql.com/doc/refman/5.1/en/case-sensitivity.html
Jeux de caractères et collation dans MySQL
http://dev.mysql.com/doc/refman/5.1/en/charset-mysql.html
Jeux de caractères et collation supportés par MySQL
http://dev.mysql.com/doc/refman/5.1/en/charset-charsets.html
j'utilise utf8_unicode_ (CI) -case-insensitive assembler sur la colonne votre recherche .... et cela fonctionne
SELECT * FROM table_name WHERE column_name1 LIKE '%A%' OR column_name1 LIKE '%a%';
Seul le code de copier-coller ne suffit pas, vous devez expliquer ce qu'il fait et comment. – peterh
@peterh convenu. –
- 1. Comment faire pour Class.forName ignorer minuscules/majuscules
- 2. Comment transférer des caractères entre majuscules et minuscules avec sed
- 3. Comment ignorer les majuscules/minuscules lors de la sélection du chemin d'accès? JS/Jquery
- 4. concat_ws et minuscules et majuscules
- 5. MS Access Inner Join ne reconnaît pas la différence entre les lettres minuscules et majuscules?
- 6. sed + changement lettre majuscules et minuscules
- 7. urls majuscules et minuscules en PHP
- 8. Conversion en majuscules et minuscules dans Java
- 9. Comment convertir les minuscules en majuscules?
- 10. php array - majuscules ou minuscules
- 11. Conversion des majuscules en NSString en minuscules
- 12. Quelle est la différence entre la barre de recherche et la barre de recherche et le contrôleur d'affichage de recherche?
- 13. Comment trouver toutes les occurrences de lettres majuscules, d'espaces et de nombres dans une recherche mysql?
- 14. Différence entre ou et || lors de la définition des variables
- 15. Comment gérer les caractères majuscules et minuscules dans une URL personnalisée?
- 16. Comment définir les chaînes en majuscules/minuscules dans Unicode?
- 17. Quelle est la différence entre mysqlimport et mysql <dbfile.sql
- 18. Quelle est la différence entre latin1_general_ci et utf8_bin dans MYSQL
- 19. bug..web minuscules en majuscules dev
- 20. erreur de sélection mysql pour les noms de tables majuscules et minuscules
- 21. différence entre l'utilisation de la liste et à gauche rejoindre
- 22. Quelle est la différence entre utf8_general_ci et utf8_unicode_ci dans MySql?
- 23. La différence entre signé et non signé dans MySQL?
- 24. Quelle est la différence entre: = et = dans MySQL?
- 25. C++, accepte les lettres minuscules et majuscules dans une variable
- 26. Différence entre MySQL .zip et .msi télécharger
- 27. Différence entre l'application Windows et la console
- 28. Délégation de la barre de recherche - différence entre searchBarShouldBeginEditing/searchBarTextDidBeginEditing?
- 29. SOLR ignorer la virgule et autres signes de ponctuation lors de la recherche
- 30. Comment calculer la différence entre les tables dans MySQL?
+1: La conduite des deux côtés de l'évaluation dans le même cas (UPPER ou LOWER) fournira une recherche insensible à la casse. Avertissement: L'utilisation d'une fonction sur la colonne n'utilisera pas d'index s'il en existe un. –