您好我想将表格的列从一个位置更新到另一个位置。假设我有100行,我想用一个数字更新位置50-90的字段。示例:{id} 2的category
应该从第50行开始更新到第90行。
我在mysql查询下面尝试过:
Update table set category = 2 limit 50, 40
这会出错。请其他任何方式。
答案 0 :(得分:0)
不幸的是,你不能在UPDATE查询中使用范围LIMIT,但是你可以使用表连接。
尝试这样的事情:
UPDATE `table` `t1`
INNER JOIN (SELECT `id` FROM `table` WHERE `category`='2' LIMIT 50, 40) `t2` ON `t2`.`id`=`t1`.`id`
SET [YOUR CUSTOM SET]
注意:如果您有特定订单,可以在INNER JOIN SELECT查询中指定。
答案 1 :(得分:-1)
对此查询使用for循环
update user
SET username=(select * from (select username FROM user WHERE id=6) A), second_field=(select * from (select second_field FROM user WHERE id=6) B)
WHERE id=5;
在你的情况下:
update category
SET category_name=(select * from (select category_name FROM category WHERE id=50) A), category_value=(select * from (select category_value FROM category WHERE id=50) B)
WHERE id=49;
update category
SET category_name=(select * from (select category_name FROM category WHERE id=51) A), category_value=(select * from (select category_value FROM category WHERE id=51) B)
WHERE id=50;
.
.
.
update category
SET category_name=(select * from (select category_name FROM category WHERE id=90) A), category_value=(select * from (select category_value FROM category WHERE id=90) B)
WHERE id=89;