如何使用 CASE 有条件地获取价格*数量
P粉506963842
P粉506963842 2024-04-03 20:45:07
0
1
473

如果我有 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;
};

P粉506963842
P粉506963842

全部回复(1)
P粉138711794

尝试将“sale_price is null”与“sale_price = null”进行比较。也许对你有帮助。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!