gpt4 book ai didi

MySQL IF/WHEN/ELSE/OR

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:00 25 4
gpt4 key购买 nike

在 MySQL 中,我试图从数据库中检索单行,除非它不存在,在这种情况下我希望它检索第二行。我已经写出代码,但由于某种原因它正在检索两行。如果未找到第一行,则检索第二行。所以不管它总是检索第二行。

SELECT *
FROM `members`
WHERE
`id` = 49
or `id` = 0

我在具有不同列的不同数据库上尝试了许多变体(when/then/else 等),它总是检索两行。

如何只检索我需要的一行?而且,任何人都可以向我解释为什么这样做吗?

最佳答案

您首先想要哪一行? id = 49?您可以尝试将 mysql 的 ORDER BYLIMIT 结合使用以获得您想要的结果。例如,如果你想先获得 id 49,你可以这样做:

SELECT * FROM members WHERE id = 49 OR id = 0 ORDER BY FIELD(id, 49, 0) LIMIT 1

这将按字段 id 对结果进行排序,但将结果限制为仅一行。因此,如果不存在 id = 49 的行,它仍然会在您的列表中获得第一行,即 id = 0

关于MySQL IF/WHEN/ELSE/OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33838631/

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