gpt4 book ai didi

mysql - 如果先行查询至少有 1 个结果,则不返回任何结果?

转载 作者:行者123 更新时间:2023-11-29 00:46:30 24 4
gpt4 key购买 nike

基本上我有这个查询:

( SELECT * FROM tbl WHERE type = 'word1' )
UNION
( SELECT * FROM tbl WHERE type = 'word2' ) // Run this query if there are no results with type = 1

基本上我只想在第一个查询没有任何结果时运行第二个查询。可能吗?

最佳答案

第一个“PreCheck”查询计算 type = 1 的记录数量。之后,如果计数大于 1,则返回 1,否则返回 2。

现在,可以在联接(通过 COUNT(*) 始终是单行)中使用该答案,该联接将具有 1 或 2 值。该值将是第二个值是 EQUALITY 条件。所以,如果有一个条目 1,结果就好像

哪里 t1.Type = 1

因此在测试中永远不允许任何 2。但是,如果没有找到任何条目,它将具有 2 的值,从而创建一个 WHERE 子句

哪里 t1.type = 2

select t1.* 
from
( select if( count(*) > 0, 1, 2 ) IncludeType
from tbl t2
where t2.type = 1 ) preCheck,
tbl t1
where
t1.type = preCheck.IncludeType

如果“类型”列上有索引,第一次查询应该几乎是瞬时的。

关于mysql - 如果先行查询至少有 1 个结果,则不返回任何结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359546/

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