phpmyadmin 使用CASE检查列是否大于0时出现语法错误,否则使用其他列[已关闭]

tyg4sfes  于 2022-11-23  发布在  PHP
关注(0)|答案(1)|浏览(131)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

5个月前关闭。
Improve this question
我尝试使用CASE函数检查discount_price列是否大于0,如果是,则选择discount_price >= 60所在的所有内容,否则选择price >= 60所在的所有内容。
但由于某种原因,我得到了一个语法错误。
错误:

Something is wrong with the used syntax ')

我的疑问:

SELECT * FROM `product_variants` WHERE 
(CASE WHEN `discount_price` > 0 THEN (SELECT * FROM product_variants WHERE discount_price >= 60) ELSE (SELECT * FROM product_variants WHERE price >= 60))

我做错了什么?我用的是mysql

6kkfgxo0

6kkfgxo01#

我认为您不需要case语句,所有内容都可以包含在一个具有某种逻辑的查询中:

SELECT *
FROM product_variants
WHERE discount_price >= 60
OR (discount_price <= 0 AND price >= 60)

假设discount_price不能为负,则第二个条件可以是(discount_price = 0 AND price >= 60)
编辑:正如@Tim Biegleisen所说,(折扣价格〉0和折扣价格〉= 60)没有意义,修复了这个问题。

相关问题