gpt4 book ai didi

sql - 仅当上一个查询没有结果时才进行查询

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

我做这个查询(1):

(1)SELECT * FROM t1 WHERE title LIKE 'key%' LIMIT 1

仅当先前的查询没有结果时,我才需要进行第二 (2) 次查询

(2)SELECT * FROM t1 WHERE title LIKE '%key%' LIMIT 1

基本上,我只需要 1 行谁的标题与我的 key 最接近。

Atm 我正在使用带有自定义字段的 UNION 查询来对其进行排序,并使用 LIMIT 1。问题是,如果第一个查询已经取得结果,我不想执行其他查询。

谢谢

最佳答案

在单个 SQL 语句中,没有一种标准的方式来说明“当且仅当查询 Q1 不返回任何内容时,才执行查询 Q2”。

适度接近的方法是:

SELECT * FROM t1 WHERE title LIKE 'key%' LIMIT 1
UNION
SELECT * FROM t1 WHERE title LIKE '%key%'
AND NOT EXISTS (SELECT * FROM t1 WHERE title LIKE 'key%')
LIMIT 1

问题是优化器是否足够智能,可以意识到 NOT EXISTS 子查询是 UNION 的前半部分。

关于sql - 仅当上一个查询没有结果时才进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535331/

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