2010-10-03 7 views
0

J'ai deux tables. Dans un j'ai la colonne comme INT et dans l'autre j'ai la rangée comme VARCHAR où j'attend l'id d'utilisateur ou l'identification unique pour la quête avec des lettres ... Je veux comparer si INT = VARCHAR dans la requête mysql. J'utilise:mysql force de comparaison BINARY

BINARY int_row = BINARY varchar_row

est-ce correct?

Répondre

0

Tant que vous comparez uniquement des nombres, cela n'aura aucune importance. De toute façon, il y aura un implicit conversion de sorte que les champs varchar et int puissent être comparés.

Le seul problème que je peux penser est si le champ varchar peut contenir des valeurs comme ceci:

1ABCDEFGHIJK 

vous pouvez avoir des ennuis ici, parce qu'une conversion de ce varchar en un certain nombre se traduirait par 1!

Pour vous assurer, je aurais tendance à utiliser

BINARY CAST(int_row AS CHAR) = BINARY varchar_row 

mais cela peut être trop paranoïaque - corrigez-moi si je me trompe.

+0

oui vous avez raison .... c'est exactement mon problème. Si la chaîne commençant par le nombre est automatiquement conveted au nombre commençant donc j'utilise BINARY pour la comparaison et cela fonctionne pour moi bien .. mais je veux savoir si le code est allright ou c'est juste chanceux .... –