Des recherches au sein de tables en utf8_general_ci avec REGEXP me donnent
de drôles de résultats :
SELECT nom FROM films WHERE nom REGEXP '^a' ORDER BY nom LIMIT 0, 3;
+----------------+
| nom |
+----------------+
| Abenobashi (1) |
| Abenobashi (2) |
| Abenobashi (3) |
+----------------+
Il est normal qu'avec la requête "^a" (<a> en début de ligne) je trouve
aussi "^A" car ma table n'est pas sensible à la casse (utf8_general_*ci).
Pourtant, avec un caractère étendu, cela ne marche pas :
SELECT nom FROM films WHERE nom REGEXP '^½' ORDER BY nom LIMIT 0, 3;
Empty set (0.01 sec)
Je devrais trouver la même chose qu'avec
SELECT nom FROM films WHERE nom REGEXP '^¼' ORDER BY nom LIMIT 0, 3;
qui renvoie :
+-------------+
| nom |
+-------------+
| ¼dipus Rex |
+-------------+
J'ai beau chercher, je ne trouve pas d'explication à cette sensibilité à la
casse seulement pour les caratères étendus. Je précise que je débute en
MySQL.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
P'tit Marcel
Vincent Ramos a écrit :
Pourtant, avec un caractère étendu, cela ne marche pas : SELECT nom FROM films WHERE nom REGEXP '^½' ORDER BY nom LIMIT 0, 3; Empty set (0.01 sec)
+-------------+ | nom | +-------------+ | ¼dipus Rex | +-------------+
Cette limitation ne me semble pas propre à MySQL. On a le même résultat en employant la bibliothèque d'expressions rationnelles issue de Perl. Il semble que le caractère ¼ ne soit pas considéré comme la version en majuscule de ½ (o e dans l'o).
Ce qui est marrant, c'est que cette limitation ne semble pas concerner la ligature æ (a e dans l'a).
eça. -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Vincent Ramos a écrit :
Pourtant, avec un caractère étendu, cela ne marche pas :
SELECT nom FROM films WHERE nom REGEXP '^½' ORDER BY nom LIMIT 0, 3;
Empty set (0.01 sec)
+-------------+
| nom |
+-------------+
| ¼dipus Rex |
+-------------+
Cette limitation ne me semble pas propre à MySQL. On a le même résultat
en employant la bibliothèque d'expressions rationnelles issue de Perl.
Il semble que le caractère ¼ ne soit pas considéré comme la version en
majuscule de ½ (o e dans l'o).
Ce qui est marrant, c'est que cette limitation ne semble pas concerner
la ligature æ (a e dans l'a).
eça.
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Pourtant, avec un caractère étendu, cela ne marche pas : SELECT nom FROM films WHERE nom REGEXP '^½' ORDER BY nom LIMIT 0, 3; Empty set (0.01 sec)
+-------------+ | nom | +-------------+ | ¼dipus Rex | +-------------+
Cette limitation ne me semble pas propre à MySQL. On a le même résultat en employant la bibliothèque d'expressions rationnelles issue de Perl. Il semble que le caractère ¼ ne soit pas considéré comme la version en majuscule de ½ (o e dans l'o).
Ce qui est marrant, c'est que cette limitation ne semble pas concerner la ligature æ (a e dans l'a).
eça. -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/