Maison > Questions et réponses > le corps du texte
Si j'ai sale_price, j'utiliserai sale_price * quantité pour représenter le prix total, Si vous n'avez pas de prix_vente, vous devez exprimer le prix total sous la forme Prix_origine * quantité.
J'ai essayé d'utiliser CASE comme ci-dessous mais j'ai obtenu cette erreur.
Erreur 1064 (42000) : Il y a une erreur dans votre syntaxe SQL ; vérifiez le manuel de la version de votre serveur MySQL pour ') )AS products FROM users u JOIN cart_order c_o ON c_o.user_id = u' on line 11 Corriger la grammaire à utiliser à proximité
Qu'est-ce que j'ai fait de mal ? Existe-t-il une autre méthode ? J'ai besoin d'aide.
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粉1387117942024-04-04 17:11:47
Essayez de comparer « sale_price is null » avec « sale_price = null ». Peut-être que ça vous aide.