2014-09-22 3 views
2

에 정수로 캐스트하지 못했습니다. 오늘 한 검색어에서 문제가 발견되어 쉽게 해결책을 찾을 수 없습니다. - INT (10) UNSIGNEDmySQL : 검색 쿼리

SELECT 
    invoice_id, firstname, lastname 
FROM 
    table 
WHERE 
    email = '[email protected]' OR 
    firstname = '[email protected]' OR 
    lastname = '[email protected]' OR 
    invoice_id = '[email protected]' 

문제는 여기에 우리가 invoice_id으로 검색 한 것입니다 :

우리는 쿼리가 있습니다.

MySQL이 자동으로 정수로 [email protected] 캐스트 : 24 개 쇼 결과를 invoice_id와 행 = 24 내가 찾은 유일한 해결책은 확인하는 것입니다

숫자 또는 이전에 SQL 쿼리를 전송하지 및 경우입니다 invoice_id가 포함되지 않은 다른 쿼리를 실행하려면 숫자가 아님.

SELECT invoice_id FROM table WHERE invoice_id = '[email protected]' 

내가 didn를 : 24 때이 쿼리를 처음 실행 :

이 예 쿼리, 실제 쿼리

그것의 결과보고 매우 놀랐습니다 (3)이 invoice_id으로의 가입했다입니다 이 캐스팅에 대해 잘 모르겠다. 왜냐하면 일반적으로 정수 열에서 스팅을 검색하지 않기 때문에 나는 그것에 대해 구글에서 읽는다.

+0

나도 몰랐다. 내 첫 번째 아이디어는'invoice_id'를 캐스팅하는 것이므로 WHERE CAST (invoice_id as VARCHAR) = '24aaa @ aaa.aa' '입니다. 그러나 이것이 작동하더라도 쿼리를 수행하기 위해 인덱스를 사용하는 것이 좋지 않을 수 있습니다. 그러나 당신은 그것을 시험 할 수 있습니다. 어쩌면 그것은 해결책 일 것입니다. – GolezTrol

답변