gpt4 book ai didi

MySQL:仅当第一个查询未返回结果时才执行第二个查询

转载 作者:可可西里 更新时间:2023-11-01 07:54:14 27 4
gpt4 key购买 nike

我需要这个查询:

SELECT * FROM best WHERE best = 'value' AND lang = 'x' 
UNION
SELECT * FROM best WHERE best = 'value' AND lang = 'custom'
LIMIT 1

基本上我只需要一条记录,其中 best = 'value' 和 lang = 'x',如果找不到这条记录,那么我需要使用 lang = 执行第二个查询'自定义'

MySQL 是否足够聪明,能够理解考虑到存在 LIMIT 1,当 union 的第一个查询返回一些东西时,他不需要执行第二个查询

我可以做一个查询:

SELECT * FROM best WHERE best = 'value' AND lang IN ('x','custom') LIMIT 1

但是对于这个查询,我不能说使用 lang = 'x'

优先记录

最佳答案

你可以使用 ORDER BY FIELD() :

SELECT
*
FROM
best
WHERE
best = 'value'
AND lang IN ( 'x', 'custom' )
ORDER BY FIELD ( lang, 'x', 'custom' )
LIMIT
1

这将解决您的“优先”问题:)

关于MySQL:仅当第一个查询未返回结果时才执行第二个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353974/

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