2012-02-27 3 views
0

J'ai une base de données qui stocke un grand nombre de codes, ces codes sont utilisés pour valider la soumission d'un formulaire. Chaque fois que je lance la requête suivante je reçois aucune ligne de retourRecherche de codes dans une base de données mysql

SELECT * FROM `codes` WHERE `voucher` = 'JTBLYNQ9HA' 

mais quand je lance la requête suivante, il ramener la ligne unique avec le code en lui.

SELECT * FROM `codes` WHERE `voucher` LIKE CONVERT(_utf8 '%JTBLYNQ9HA%' USING latin1) COLLATE latin1_swedish_ci LIMIT 0 , 30 

Qu'est-ce que je fais mal ce qui provoque la première requête à l'échec ou doit est-il préférable d'utiliser la deuxième requête?

Merci pour l'aide

Répondre

1

Les deux requêtes ne sont pas équivalentes. Le premier cherche un code dont le bon est exactement "JTBLYNQ9HA", le second cherche un code dont le voucher contient cette chaîne (par exemple, "ABCDEFGJTBLYNQ9HAHIJKLM").

La conversion du jeu de caractères et COLLATE sont presque certainement hors de propos.

+0

Je ne comprends pas pourquoi le premier échouerait vu que le code est exactement comme celui de la table. Je vais m'en tenir à la seconde et supprimer la conversion et collate.Merci – Peter

Questions connexes