错误代码:1292。截断错误的DOUBLE值:'yes'

时间:2013-04-18 17:31:13

标签: mysql sql mysql-workbench

执行此SQL查询时:

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')) )

我收到以下错误:

  

错误代码:1292。截断错误的DOUBLE值:'yes'

我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:0)

您的表v中的列tag_way似乎是数字,因此where子句的这一部分显示无效:

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

尝试并修改该部分,使条件与您的数据类型匹配。

答案 1 :(得分: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')