0

当我执行这个 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 值:“是”

我怎样才能解决这个问题?

谢谢。

4

2 回答 2

0

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

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

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

于 2013-04-18T18:12:54.563 回答
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')
于 2013-04-18T18:22:32.490 回答