我当前正在尝试执行以下查询,但mySQL不支持它。
UPDATE `TABLE 1` SET `batchid`=1 WHERE `id`
IN (SELECT `id` FROM `TABLE 1`
WHERE `postcode` BETWEEN "3699*"
AND "3900*" AND `telstriplengte`='10' LIMIT 1); 我一直在摆弄连接,但似乎不能正确地处理它。我的问题是,是否有人能给我指出正确的方向。
发布于 2014-12-03 20:54:36
不能像这样在一个查询中直接传递所有内容吗?
UPDATE `TABLE 1` SET `batchid`=1
WHERE `postcode` BETWEEN "36990" AND "39009" AND `telstriplengte`='10' LIMIT 1;发布于 2014-12-03 20:56:26
这是您的查询:
UPDATE `TABLE 1`
SET `batchid`=1
WHERE `id` IN (SELECT `id`
FROM `TABLE 1`
WHERE `postcode` BETWEEN "3699*" AND "3900*" AND
`telstriplengte`='10'
LIMIT 1); 这个查询的具体问题是,您引用的是子查询中正在更新的表。在本例中--假设id是唯一的,则根本不需要该子查询:
UPDATE `TABLE 1`
SET `batchid`=1
WHERE `postcode` BETWEEN "3699*" AND "3900*"
AND `telstriplengte` = '10'
LIMIT 1; 通常,当使用LIMIT时,您也会有一个ORDER BY。不是必需的,但是任何符合条件的行都可以被更新,我猜您想要具有最小id的行。
https://stackoverflow.com/questions/27272226
复制相似问题