2013-04-18 2 views
0

나는이 SQL 쿼리를 실행하면 :오류 코드 : 1292 잘린 잘못된 DOUBLE 값 : '예'

INSERT INTO archi(nodo1,nodo2) 
SELECT p.nodo,p2.nodo 
FROM polinodo p,polinodo p2 
where p.way=p2.way and p.idpolinodo!=p2.idpolinodo and p.idpolinodo=p2.idpolinodo-1 
and p.way in 
    (SELECT idtag_way 
    FROM tag_way_min where k='highway' and 
    idtag_way in (SELECT idtag_way 
       FROM tag_way_min where k='oneway' and (v=1 or v='true' or v='yes'))) 

나는 다음과 같은 오류가 나타납니다

Error Code: 1292. Truncated incorrect DOUBLE value: 'yes'

가 어떻게이 문제를 해결할 수 있습니까?

감사합니다.

답변

0

이 테이블 tag_way의 열 v 숫자 것 같다, 그래서 당신의 where 조항의 일부가 유효 나타납니다

(v=1 or v='true' or v='yes') 

시도를하고 조건이 데이터 유형과 일치하므로 그 부분을 수정합니다.

0

내가 k는 두 값이 동일 할 수있는 방법을 볼 수 없습니다

(SELECT idtag_way 
FROM tag_way_min where k='highway' and 
idtag_way in (SELECT idtag_way 
      FROM tag_way_min where k='oneway' and (v=1 or v='true' or v='yes') 

, 다른 동일한 행에서 열 k에 대한 두 개의 값을 검색하기 위해 요구와 논리에 문제가있는 것 같습니다. 아마도 다음과 같이 변경하십시오 :

(SELECT idtag_way 
FROM tag_way_min where k='highway' or k='oneway' 
idtag_way in (SELECT idtag_way 
      FROM tag_way_min where v=1 or v='true' or v='yes') 
관련 문제