gpt4 book ai didi

sql - 如何在mysql中选择某行(或在选择中给予优先权)?

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

需要你们的帮助来形成一个查询。

例子。公司 - 租车

表格 - 汽车

ID  NAME       STATUS
1 Mercedes Showroom
2 Mercedes On-Road

现在,如何从该表中只选择一个满足以下条件的条目?

  1. 如果陈列室中有梅赛德斯,则仅获取该行。 (即上例中的第 1 行)

  2. 但是如果陈列室中没有一辆梅赛德斯可用,则获取任意一行。 (即第 1 行或第 2 行)-(这只是说所有梅赛德斯都在路上)

在这里使用 distinct 没有帮助,因为 ID 也在 select 语句中获取

谢谢!

最佳答案

这是解决该问题的常用方法:

SELECT *,
CASE STATUS
WHEN 'Showroom' THEN 0
ELSE 1
END AS InShowRoom
FROM Cars
WHERE NAME = 'Mercedes'
ORDER BY InShowRoom
LIMIT 1

下面是获取所有汽车的方法,这也展示了另一种解决问题的方法:

SELECT ID, NAME, IFNULL(c2.STATUS, c1.STATUS)
FROM Cars c1
LEFT OUTER JOIN Cars c2
ON c2.NAME = c1.NAME AND c2.STATUS = 'Showroom'
GROUP BY NAME
ORDER BY NAME

关于sql - 如何在mysql中选择某行(或在选择中给予优先权)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079717/

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