Wenn ich „Sonderpreis“ habe, verwende ich „Sonderpreis * Menge“, um den Gesamtpreis darzustellen. Wenn Sie keinen Verkaufspreis haben, müssen Sie den Gesamtpreis als Preis_Ursprung * Menge angeben.
Ich habe versucht, CASE wie unten beschrieben zu verwenden, habe aber diesen Fehler erhalten.
Fehler 1064 (42000): Es liegt ein Fehler in Ihrer SQL-Syntax vor; überprüfen Sie das Handbuch für Ihre MySQL-Serverversion auf ') )AS products FROM users u JOIN cart_order c_o ON c_o.user_id = u' in Zeile 11. Korrekte Grammatik in der Nähe
Was habe ich falsch gemacht? Gibt es eine andere Methode? Ich brauche Hilfe.
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; };
尝试将“sale_price is null”与“sale_price = null”进行比较。也许对你有帮助。