如果我有 sale_price,我会用 sale_price * 数量来表示总价, 如果您没有 sale_price,则需要用 Price_origin * 数量来表示总价。
我尝试使用 CASE 如下,但出现此错误。
错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 11 行的 ') )AS products FROM users u JOIN cart_order c_o ON c_o.user_id = u' 附近使用的正确语法
我做错了什么?还有别的办法吗?我需要帮助。
const readUserCart = async userId => {
const userCart = await myDataSource.query(
`SELECT u.id AS userId, u.name AS userName,
JSON_ARRAYAGG(
JSON_OBJECT(
'productName', p.name,
'quantity', c_o.quantity,
'priceOrigin', REPLACE(p.price_origin, '.', ','),
'salePrice', REPLACE(p.sale_price, '.', ','),
'productThumbnail', t_i.default_img,
'status', c_o.status,
'price', CASE
WHEN p.sale_price = null
THEN REPLACE(p.price_origin * quantity, '.', ',')
ELSE REPLACE(p.sale_price * quantity, '.', ',')
)
)AS products
FROM users u
JOIN cart_order c_o ON c_o.user_id = u.id
JOIN products p ON p.id = c_o.product_id
WHERE u.id = ?
GROUP BY u.id`,
[userId]
);
return userCart;
}; Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
尝试将“sale_price is null”与“sale_price = null”进行比较。也许对你有帮助。