作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确实找到了一些类似问题的答案,但还不太明白。
我有一个 MySQL 表,里面有轮胎。轮胎记录由以下列组成:
当宽度、高度、直径匹配一定值时,我需要选择特定品牌的轮胎。如果没有,我需要选择其他部分重叠品牌的轮胎。
我需要在伪造的 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
部分,第二个 SELECT
是 ELSE
部分。
关于mysql - 在 SQL 中根据 CASE 结果使用不同的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177873/
我是一名优秀的程序员,十分优秀!