2013-04-18 50 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_wayv是数字,所以你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可如何等于2倍的值。也许改成这样:

(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') 
相关问题