gpt4 book ai didi

Mysql当前版本不支持 'LIMIT & IN/ALL/ANY/SOME subquery'

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:58 25 4
gpt4 key购买 nike

我有一个表 table1 o_id 作为 PK, host, b_id

o_id    host              b_id
9205 host1.abc.com null
9206 host2.abc.com null
9207 host3.abc.com null

---超过1000行

我有另一个表 table2 id 作为 PK, hostname, b_id

id      hostname              o_id   ip
18356 host1 null 10.10.10.10
18357 host2 null 10.11.11.11
18358 host3 null 10.12.12.12

---超过1000行

现在,如果 hostname(excluding domain name) 在两个表中都匹配,并且 ip 地址在 ('10.10|10.11') 范围内,然后我想更新两个表,这样 table2.o_id = table1.o_idtable1.b_id = table2.id

update table1 T1
inner join table2 T2 on T2.hostname = substring_index(T1.host, '.', 1)
set T2.o_id = T1.o_id ,
T1.b_id = T2.id
where T1.b_id IS NULL AND
T2.ip IN (select ip from table2 where ip regexp ('10.10|10.11')
limit 10);

在这里,我想从第一个表中的 o_id 更新第二个表中的 o_id。我还想从第二个表中的 id 更新第一个表中的 b_id

在这里,我遇到了一个错误

Error Code: 1235. This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

我使用的是 MYSQL Versin 6.0

最佳答案

只做一个额外的join而不是in:

update table1 T1 inner join
table2 T2
on T2.hostname = substring_index(T1.host, '.', 1) join
(select distinct ip
from table2
where ip regexp ('10.10|10.11')
limit 10
) t3
on t2.ip = t3.ip
set T2.o_id = T1.o_id ,
T1.b_id = T2.id
where T1.b_id IS NULL ;

关于Mysql当前版本不支持 'LIMIT & IN/ALL/ANY/SOME subquery',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48288399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com