2014-09-10 3 views
1

모든 이름의 데이터 테이블이 있습니다. 이 표는 내가Where 절은 아무것도 반환하지 않습니다. MySQL

select * from name

그것이 내가 할 때까지 모든 행

를 반환 할 하나 cloumn "이름"(VARCHAR) 함께

select * from name where name="(a name which is in the database)" 

아무것도 (반환하지 않습니다 나는 테이블에있는 많은 이름들과 함께 시도했다). 내가 할 때

select * from name where length(name)>0; 

다시 모든 행을 반환합니다.

무엇이 잘못 될 수 있습니까?

나는 SELECT name, length(name), MD5(name) FROM name을 시도했는데, 길이는 문자열 길이보다 큰 하나의 숫자를 다시 실행합니다. 나는 하나의 공간을 앞에두고 그 후에 한 공간으로 시도했지만,이 두 가지 방법 모두 도움이되지 않습니다.

+0

테이블 구조를 알려주세요. – diEcho

+0

오타? 공백이나 다른 문자들? –

+0

@XLAnt : 아무 것도 없습니다. 문자열은 작은 따옴표'(" '")'또는 큰 따옴표 ("" ")로 묶인 일련의 바이트 또는 문자입니다. – diEcho

답변

1

문자열에 공백이나 개행 문자 또는 캐리지 리턴과 같은 보이지 않는 문자가있을 것입니다.

이 시도 :

select * from name where replace(replace(trim(name), '\r', ''), '\n', '') = 'your_name'; 

을이 결과를 얻을 경우, 당신은 그 문자를 제거하기 위해 테이블을 업데이트해야합니다.

+1

\ replace (replace (trim (name), '\ r', '') '\ n'- HERE--, ''-/HERE--)' – scragar

+0

@scragar 고마워, 고쳤어. – fancyPants

+0

고마워, 보이지 않는/n 또는/r 문자열에 :) – hln

관련 문제