gpt4 book ai didi

php - mysql选择两个表并使用 "or"变得非常慢

转载 作者:行者123 更新时间:2023-11-29 12:36:13 25 4
gpt4 key购买 nike

我的数据库中有三个表

1.用户电话
用户电话
aaa p-12345
bbb p-56454

2.phone_a
ID 电话号码
p-12345 +887157481
p-16546 +841461655

3.phone_b
ID 电话号码
p-54847 +48446165
p-56461 +64964661

我用phone_a存储手机号码,用phone_b存储家里的电话号码。
当用户输入电话号码时,我想在两个表中搜索该号码。
这是我的查询:

select A.user
from
user_phone as A,phone_a as B,phone_b as C
where
(A.phone=B.id and B.phone_number ="+9878848") or
(A.phone=C.id and C.phone_number ="+9878848")

但是这个查询非常慢,我不知道为什么。
user_phone和phone_a有60000行,而phone_b只有600行。
我认为这个数字对于MySql来说很小,所以我不知道为什么查询很慢。
我也知道使用 JOIN 可能会加快查询速度,但我想知道是否有办法不使用 JOIN,以及为什么这个查询这么慢?

最佳答案

试试这个,未经测试但很容易调试,只需告诉我错误即可

select A.user
from
user_phone as A inner join phone_a as B on a.phone=b.id inner join phone_b as C on a.phone= c.id
where
"+9878848" in( B.phone_number, C.phone_number)

关于php - mysql选择两个表并使用 "or"变得非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26750625/

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