2012-02-27 7 views
0

많은 코드를 저장하는 데이터베이스가 있는데이 코드는 양식 제출의 유효성을 확인하는 데 사용됩니다. 나는 다음과 같은 쿼리를 실행 어느 때 제로 행을 다시mysql 데이터베이스의 코드 검색

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

을 얻을하지만 난 다음 쿼리를 실행할 때 그것의 코드로 단일 행을 다시 가져온다. 내가 실패 할 첫 번째 쿼리가 발생하거나 두 번째 쿼리를 사용하는 가장 좋은 방법은해야되는 잘못하고 있어요 무엇

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

?

감사합니다.

답변

1

두 개의 쿼리는 동일하지 않습니다. 첫 번째 것은 바우처가 정확히 "JTBLYNQ9HA"인 코드를 찾고, 두 번째 코드는 바우처에 해당 문자열이 들어있는 코드를 찾고 있습니다 (예 : "ABCDEFGJTBLYNQ9HAHIJKLM").

문자 집합 변환과 COLLATE은 거의 관련이 없습니다.

+0

코드가 테이블의 코드와 정확히 일치하지 않으므로 왜 첫 번째 코드가 실패하는지 이해할 수 없습니다. 두 번째 것에 충실하고 변환을 제거하고 콜레이트 할 것입니다. 감사합니다. – Peter

관련 문제