【发布时间】:2010-05-28 18:25:31
【问题描述】:
我有以下问题......
UPDATE vehicle_catalog SET parent_id = 0 WHERE parent_id = SUBSTR(id, 0, 5)
我需要将所有parent_ids 设置为0,其中id 的前5 个字符与parent_id 相同。当我查看数据时,这会影响 0 行,它应该会影响超过 10,000 行。
关于为什么这不会影响所有行的任何想法?
更新
如果我做了我不明白的事
UPDATE SET col = '1' 它会影响整个数据库,但我的查询并未在整个数据库上运行。
更新 正确的解决方案:
UPDATE `vehicle_catalog` SET parent = 0 WHERE SUBSTRING(id FROM 1 FOR 6) == SUBSTRING(parent_id FROM 1 FOR 6)
【问题讨论】:
-
您可以尝试运行 SELECT * FROM vehicle_catalog WHERE parent_id = SUBSTR(id, 0, 5) 吗?这将返回您的查询将影响的行。如果 SELECT 没有返回您需要更新条件的任何行;如果它返回你所期望的,那么就会发生其他事情。
标签: mysql sql-update