IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Comparaison de texte utf8 et latin1


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Points : 25
    Points
    25
    Par défaut Comparaison de texte utf8 et latin1
    Bonjour,

    J'ai une requete du type SELECT FROM table1, table2 WHERE table1.texteutf8=table2.textelatin1. Le problème c'est que 2 chaines identiques avec des accents ne seront pas égale à cause des encodages differents, j'ai bien essayé CONVERT(textelatin1 USING utf8)=texteutf8 ou avec un CAST(textelatin1 CHAR CHARACTER SET utf8) mais ça n'a rien changé. Y a t-il une solution sachant que je ne peux pas modifier l'encodage des champs?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 975
    Points
    52 975
    Billets dans le blog
    6
    Par défaut
    Il faut rajouter une clause COLLATE à supposer que votre SGBDR le supporte. or ny UTF8, ni Latin1 sont des éléments de SQL ce qui me laisse à supposer que vous travaillez avec mySQL que, je le pense ne supporte pas la clause COLLATE...

    Le principe est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 
    FROM table1
           INNER JOIN table2 
                 ON table1.texteutf8 = table2.textelatin1 COLLATE French_CS_AS
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/s...er/collations/

    A +

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 18
    Points : 25
    Points
    25
    Par défaut
    Super ! en plus c'est bien supporté sous mysql 5.0

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/03/2014, 11h38
  2. comparaison numérique / texte
    Par kikidrome dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/06/2008, 15h58
  3. [driver oracle thin] encodage utf8 vers latin1
    Par hugo123 dans le forum JDBC
    Réponses: 3
    Dernier message: 22/05/2008, 13h17
  4. Comparaison chiffre text
    Par gentilman_delphi dans le forum Langage
    Réponses: 9
    Dernier message: 10/02/2008, 19h51
  5. Algorithme de comparaison de texte?
    Par tixu dans le forum Outils
    Réponses: 2
    Dernier message: 02/09/2007, 00h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo