Recherche sans casse [postgreSQL] - SQL/NoSQL - Programmation
Marsh Posté le 06-02-2003 à 09:43:05
Predicator a écrit : salut ! |
la reponse est oui en
sur la syntaxe de recherche...
là je suis au boulot et j'ai pas mon bouquin sous la main, mais si j'y penses je t'enverrai un mail avec la syntaxe.
Marsh Posté le 06-02-2003 à 10:12:04
merci, j'ai trouvé pour les majuscules, mais le coup des caractères générique, c'est pas forcément idéal, car on peut se retrouver avec des résultats non cohérents...
par exemple :
aré = ark
en mettant un caractère générique pour le 'é'
par contre, j'ai pensé à une solution, mais ne connaissant pas pgSQL, je ne sais pas si c'est valable...
SELECT *
WHERE utf-8_to_ascii(lower(valeur)) = utf-8_to_ascii(lower('ma chaine')
cette méthode me fait me poser plusieurs questions
utf-8_to_ascii(lower(valeur))
valeur est le nom de la colonne... peut on accéder à la valeur de la colonne comme ça ? est-ce valide ?
peut-on modifier (utf8-_to_ascii) sans modifier la valeur inscrite dans la BDD ?
je me rends compte ensuite que passer 'é' en ascii retourne un '?' et non un 'e'...
ma méthode marche pas
Marsh Posté le 06-02-2003 à 10:51:57
ben déjà tu peux utiliser ilike, pour une recherche par regexp sans tenir compte de la casse. Par contre, je ne sais pas pour les accents, regarde la doc de ilike.
Marsh Posté le 12-02-2003 à 22:26:39
UTF 8, c'est pas la norme anglaise? Et si tu essayais avec la française? Il apprécierait peut etre plus les accents.
Marsh Posté le 13-02-2003 à 10:21:56
mat35 a écrit : UTF 8, c'est pas la norme anglaise? Et si tu essayais avec la française? Il apprécierait peut etre plus les accents. |
le problème n'est pas qu'il accepte ou pas les accents
UTF-8 est un codage d'UNICODE, comme il en existe d'autres, à partir de là, tu peux mettre des accents n'importe où... mon problème est de pouvoir faire une recherche sans accent...
par exemple, si un utilisateur fait une recherche sur "aue", il doit pouvoir avoir "äùé" dans son résultat (si c'est dans la base bien sûr). seulement voilà, il n'y a aucun lien entre un caractère (e) et ses version accentuées (é,è,ë,...)
je travaille avec quelqu'un qui s'y connait pas mal, il m'a expliqué que UTF-8 n'est pas le meilleur codage d'UNICODE (mais le seul existant dans PostgreSQL, malheureusement). Il existe une version d'encodage d'UNICODE ou les caractère et les lettre sont séparés, bien que ce soit transparent à l'utilisation...
par exemple "äùé" devient dans ce codage "a¨u`e'"
c'est une piste à fouiller, je vous tiendrai au courant...
Marsh Posté le 05-02-2003 à 17:19:46
salut !
je voudrais savoir s'il est possible de faire une requete sur des valeurs, sans tenir compte de la casse, i.e. sans accent et sans majuscule...
par exemple Aré = are rend vrai
J'ai cherché mais je n'ai rien trouvé pour l'instant.
merci