2016-07-18 2 views
-2

쿼리 후 행이 표시되지 않는 이유에 대해 간단한 질문이 있습니다. 다음은 데이터베이스에있는 3 개의 테이블을 기반으로 사용하는 샘플 쿼리입니다.(MySQL) 쿼리 후 행이 표시되지 않는 이유는 무엇입니까?

select ff9characters.name, ff9apchart.apneeded 
    from ff9characters 
    join ff9apchart 
    on ff9apchart.charID=ff9characters.id 
    join ff9abilities 
    on ff9apchart.abilityid=ff9abilities.id 
    where ff9abilities.ability = 'Accuracy+' 
    group by ff9characters.name 
    order by ff9characters.id; 

전혀 표시되지 않습니다. 나는 ff9abilities에있는 능력 컬럼이 텍스트 데이터 타입의 데이터로 채워지고 '정확도 +'가 나열되었다고 덧붙이고 싶습니다. 나는에 WHERE 문을 변경하는 경우

는 :

where ff9abilities.ability like 'Acc%' 

모든 데이터가 표시됩니다. 나는 4 행을 반환했다. (그것은 내 원하는 결과였다.)

모든 데이터를 읽을 수 있도록 대신 능력 컬럼의 데이터 유형을 텍스트에서 varchar로 변경해야합니까?

+5

당신이 당신의 데이터'정확도 +'후 추가 문자가없는 특정 있습니까? (예 :'Accuracy +') – Siyual

+0

아, 좋은 지적입니다. 정보가 "load data local infile"명령을 통해 가져올 때 txt 파일을 살펴볼 필요가 있습니다. 서식을 설정해야합니다. –

답변

0

는 부적절한 공백이 트림과 시도가 될 수 없습니다 (하단)

select ff9characters.name, ff9apchart.apneeded 
    from ff9characters 
    join ff9apchart 
    on ff9apchart.charID=ff9characters.id 
    join ff9abilities 
    on ff9apchart.abilityid=ff9abilities.id 
    where trim(ff9abilities.ability) = 'Accuracy+' 
    group by ff9characters.name 
    order by ff9characters.id; 
+0

머리를 가져 주셔서 감사합니다! 내 문제를 발견 한 것 같아요. 각 셀의 데이터에는 단어 뒤의 여분의 문자 (공백의 형태로)가 있습니다. –

+0

내 대답이 맞다면 승인으로 표시하십시오. – scaisEdge

관련 문제