gpt4 book ai didi

mysql - 在 SQL 中根据 CASE 结果使用不同的 WHERE 子句

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

我确实找到了一些类似问题的答案,但还不太明白。

我有一个 MySQL 表,里面有轮胎。轮胎记录由以下列组成:

  1. 品牌
  2. 宽度
  3. 高度
  4. 直径
  5. 价格

当宽度、高度、直径匹配一定值时,我需要选择特定品牌的轮胎。如果没有,我需要选择其他部分重叠品牌的轮胎。

我需要在伪造的 SQL 中实现的目标:

SELECT * FROM tyres
IF (width = 275 AND height = 55 AND diameter = 18)
OR (width = 270 AND height = 55 AND diameter = 17)
OR (width = 290 AND height = 45 AND diameter = 19)
THEN WHERE_CLAUSE = "WHERE brand = 'dunlop' OR brand = 'michelin' OR brand = 'vredestein'"
ELSE WHERE_CLAUSE = "WHERE brand = 'goodyear' OR brand = 'michelin' OR brand = 'ferrari'"

我已经尝试了很多像下面这样的符号,但是(显然)不断出现语法错误 #1064:

SELECT * FROM tyres
CASE WHEN width = '275' AND height = '55' AND diameter = '18' THEN " WHERE brand = 'dunlop' OR brand = 'michelin' OR brand = 'vredestein'"
ELSE " WHERE brand = 'goodyear' OR brand = 'michelin' OR brand = 'ferrari'"

如何根据 CASE 语句的结果使用特定的 WHERE 子句?

最佳答案

尝试UNION ALL:

SELECT * FROM tyres
WHERE width = 275 AND height = 55 AND diameter = 18
AND (brand = 'dunlop' OR brand = 'michelin' OR brand = 'vredestein')
UNION ALL
SELECT * FROM tyres
WHERE width <> 275 OR height <> 55 OR diameter <> 18
AND (brand = 'goodyear' OR brand = 'michelin' OR brand = 'ferrari')

第一个 SELECT 是您帖子中的 THEN 部分,第二个 SELECTELSE 部分。

关于mysql - 在 SQL 中根据 CASE 结果使用不同的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177873/

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