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