gpt4 book ai didi

mysql - 如果第一个 SELECT 返回 0 行,则进行第二个 SELECT 查询

转载 作者:IT老高 更新时间:2023-10-29 00:19:56 25 4
gpt4 key购买 nike

我正在尝试加快 PHP 脚本的速度,目前我正在该事物的 Mysql 域中推送一些 PHP 逻辑。如果第一个 Select 没有返回任何行或计数为零,有没有办法进行不同的选择查询?

请记住,第一个查询需要首先运行,如果第一个查询返回空集,则第二个查询应该被激活。

SELECT * FROM proxies WHERE (A='B') || SELECT * FROM proxies WHERE (A='C')

对于上述 2 个查询,我有这段代码,但它似乎每个查询运行两次(一次用于计数,一次用于返回)。有更好的方法吗?

IF (SELECT count(*) FROM proxies WHERE A='B')>0
THEN SELECT * FROM proxies WHERE A='B'
ELSEIF (SELECT count(*) FROM proxies WHERE A='C')>0
THEN SELECT * FROM proxies WHERE A='C'
END IF

最佳答案

一种选择是将 UNION ALLEXISTS 一起使用:

SELECT * 
FROM proxies
WHERE A='B'
UNION ALL
SELECT *
FROM proxies
WHERE A='C' AND NOT EXISTS (
SELECT 1
FROM proxies
WHERE A='B'
)

这将返回 proxies 表中的行,其中 A='B' 如果存在。但是,如果它们不存在,它将查找具有 A='C' 的那些行。

关于mysql - 如果第一个 SELECT 返回 0 行,则进行第二个 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27366107/

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