Comparaison de chaînes, champ sql de type TEXT
Posté : 01 juin 2020, 21:50
Bonjour à tous,
Je dois comparer deux champs de types TEXT dans une base de données pour vérifier s'ils sont identiques.
Il s'agit d'adresses, formatées comme ceci :
"SOCIETE SCHMURTZ
JEAN JACQUES BIDULE
28 AVENUE DU FROMAGE
55000 BAR LE DUC"
Il n'y a pas d'accent, tout est en majuscules.
Et j'obtiens des résultats assez étranges : parfois, les champs comportent des différences que je ne m'explique pas : il n'y a pas le même nombre de caractères selon les champs, alors que l'insertion dans la base a (théoriquement) eu lieu exactement de la même façon.
En décomposant des adresses caractère par caractère, je me suis rendu compte que certaines chaînes avaient des caractères blancs supplémentaires (espaces ? retours chariots ?). Alors j'ai fait un preg_replace pour enlever tous les caractères blancs avant de comparer, et ça fonctionne.
Mais quand même, j'aimerais bien comprendre
Je dois comparer deux champs de types TEXT dans une base de données pour vérifier s'ils sont identiques.
Il s'agit d'adresses, formatées comme ceci :
"SOCIETE SCHMURTZ
JEAN JACQUES BIDULE
28 AVENUE DU FROMAGE
55000 BAR LE DUC"
Il n'y a pas d'accent, tout est en majuscules.
Et j'obtiens des résultats assez étranges : parfois, les champs comportent des différences que je ne m'explique pas : il n'y a pas le même nombre de caractères selon les champs, alors que l'insertion dans la base a (théoriquement) eu lieu exactement de la même façon.
En décomposant des adresses caractère par caractère, je me suis rendu compte que certaines chaînes avaient des caractères blancs supplémentaires (espaces ? retours chariots ?). Alors j'ai fait un preg_replace pour enlever tous les caractères blancs avant de comparer, et ça fonctionne.
Mais quand même, j'aimerais bien comprendre