这个问题在这里已经有答案了:
mysql错误:update和limit的用法不正确(5个答案)
sql:使用带限制的内部联接进行更新(2个答案)
两年前关门了。
我有一张table table1
其中有列 o_id
作为 PK
, ipaddress
, b_id
```
o_id ip b_id
9205 10.10.10.10 null
9206 10.10.10.11 null
9207 10.10.10.12 null
---1000多行
我还有一张table
table2 `id` 其中列为 `PK` , `ipaddress` , `b_id` , `env` ```
id ip o_id env
18356 10.10.10.10 null dev
18357 10.10.10.11 null prod
18358 10.10.10.12 null qa
---1000多行
现在,如果 ipaddress
表和表中的匹配项 table2.env IN ('dev', 'qa')
,然后我要更新这两个表,以便 table2.o_id = table1.o_id
以及 table1.b_id = table2.id
我想更新一下 o_id
在第二张table上 o_id
在第一张table上。我也想更新一下 b_id
在第一个表中 id
在第二张table上。
我写了下面的问题。
update table1 t1
inner join table2 t2 on t1.ip = t2.ip
set t1.b_id = t2.id,
t2.o_id = t1.o_id
where t2.env IN ('dev', 'qa')
limit 2
我犯了个错误 incorrect usage of limit
.
我只想先更新2行,看看它看起来怎么样?我不想一次更新整个表
2条答案
按热度按时间yks3o0rb1#
你不能随心所欲。mysql不允许
limit
加入。可以使用子查询限制行数:9bfwbjaz2#
你不能使用
Limit
直接在更新查询中。你应该试试那样的东西;