2014-09-10 1 views
0

데이터 유형이 작은 int의 테이블에 열이 있습니다. 1과 0과 같은 값을 가짐.where 절에있는 문자가있는 정수 필드가 이상한 결과를 반환합니다.

SELECT * from table_name where filed_name = 'Y'; 

결과가 0 인 모든 레코드가 반환됩니다. 쿼리 실행 방법을 이해하지 못했습니다. 날이

+0

로 변환 http://stackoverflow.com/questions/ 값으로 모든 레코드를 얻고있는 이유 그게 전부 10852337/true-false-vs-0-1-in-mysql 참 및 거짓은 1과 동의어입니다. 이전 질문을 참조하십시오. –

+0

제 질문에서 이해해야 할 것은 정수 필드가 char actor는 true를 반환합니다 (1). 위의 쿼리를 'table_name에서'선택 field_name = 'Y'로하면 결과로 1이 반환됩니다. – Arumugam

답변

0

, 그것은 값 0된다. 당신이 여기 0

SELECT * from table_name where filed_name = 'Y'; 

'Y'자동으로 대신 0

사용

SELECT * from table_name where filed_name = 1; 
+1

감사합니다. vikrant singh, 이제 알았습니다. 고마워요 – Arumugam

+0

환영합니다 :) –

0

TINYINT, 그것은 정수에게 0 또는 1'Y' 또는 'N' 같은 저장하지 문자열 값을 저장 않습니다 이해하는 데 도움이 바랍니다. 당신이 값이 'Y'모든 데이터 행을 원하는 경우에 당신은 1 (정수) 예를 기준으로 필터링 할 다음 stringnumber로 변환 할 때

SELECT * FROM myTable WHERE myTinyColumn = 1 
관련 문제