gpt4 book ai didi

MySQL SELECT 仅当不匹配时

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

我正在尝试根据名称字段的值从表中进行选择。

如果记录不是基于第一个条件,我只想匹配某些条件,即。

如果以下匹配:

WHERE name='version'

如果是,则返回那一行,如果不是,也寻找这些:

WHERE name='v' OR name='e' OR name='r' etc...

这在单个查询中可能吗?

非常感谢!

最佳答案

SELECT ...
FROM ..
WHERE name = 'version'
UNION ALL
SELECT ...
FROM ...
WHERE NOT EXISTS (
SELECT ...
FROM ..
WHERE name = 'version'
) AND name IN ('v', 'e', 'r', ...)

编辑:
不确定如何测试 mysql 是否会缓存第一个查询的结果,但假设您在新 session 中运行查询:

SELECT @cached:=1, ...
FROM ..
WHERE name = 'version'
UNION ALL
SELECT 2, ...
FROM ...
WHERE @cached IS NULL AND name IN ('v', 'e', 'r', ...)

应该可以

如果在同一个 session 中你想用

清除 @cached
SELECT @cached:=1, ...
FROM .., (SELECT @cached:=0) x
WHERE name = 'version'
UNION ALL
SELECT 2, ...
FROM ...
WHERE @cached = 0 AND name IN ('v', 'e', 'r', ...)

关于MySQL SELECT 仅当不匹配时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5341627/

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