Requête tri champ alphanumérique dans table
Résolu
naokylon
Messages postés
90
Date d'inscription
Statut
Membre
Dernière intervention
-
naokylon Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
naokylon Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite faire une requête mysql qui fasse un count dans une colone , en ne sélectionnant que les éléments contenant 3 lettres et 6 chiffres.
Donc en fait, comme résultat, il devrait me donner "2" pour l'exemple.
Je pensais faire quelque chose comme:
Mais cela ne marche pas!
Pouvez-vous m'aider?
Je souhaite faire une requête mysql qui fasse un count dans une colone , en ne sélectionnant que les éléments contenant 3 lettres et 6 chiffres.
table:
| ID | champ1 | ...
| 1 | toto | ...
| 2 | tata01 | ...
| 3 | VOI600720 | ...
| 4 | CHY700621 | ...
...
Donc en fait, comme résultat, il devrait me donner "2" pour l'exemple.
Je pensais faire quelque chose comme:
SELECT COUNT(*) FROM table WHERE champ1 LIKE '[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'
Mais cela ne marche pas!
Pouvez-vous m'aider?
A voir également:
- Requête tri champ alphanumérique dans table
- Table ascii - Guide
- Table des matières word - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Table des caractères - Guide
4 réponses
C'est exactement ce que tu as mis, mais en remplaçant LIKE par REGEXP. A un détail près, dans ton expression tu ne précises pas que les trois premières lettres doivent être au début de la chaine et les 6 chiffres à la fin, ce que l'on corrige en rajoutant ^ et $
Tu peux aussi la raccourcir en utilisant les itérations :
A noter que tu te limites aux lettres majuscules. Pour étendre aux minuscules, il faut mettre [a-zA-Z] au lieu de [A-Z].
Xavier
SELECT COUNT(*) FROM table WHERE champ1 REGEXP '^[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]$'
Tu peux aussi la raccourcir en utilisant les itérations :
SELECT COUNT(*) FROM table WHERE champ1 REGEXP '^[A-Z]{3}[0-9]{6}$'
A noter que tu te limites aux lettres majuscules. Pour étendre aux minuscules, il faut mettre [a-zA-Z] au lieu de [A-Z].
Xavier
Bonjour,
Les expressions rationnelles, en mysql, ne s'utilisent pas directement, il faut préciser que tu en utilise en utilisant REGEXP.
Voilà la doc officielle : https://dev.mysql.com/doc/refman/8.0/en/regexp.html
Xavier
Les expressions rationnelles, en mysql, ne s'utilisent pas directement, il faut préciser que tu en utilise en utilisant REGEXP.
Voilà la doc officielle : https://dev.mysql.com/doc/refman/8.0/en/regexp.html
Xavier