【发布时间】:2015-03-03 16:09:37
【问题描述】:
谁能帮我理解为什么我在尝试运行此查询时遇到语法错误?
UPDATE exp_store_orders
SET exp_store_orders.order_status_name = "Digital"
JOIN exp_store_order_items
ON exp_store_orders.id = exp_store_order_items.order_id
JOIN exp_channel_data
ON exp_store_order_items.entry_id = exp_channel_data.entry_id
GROUP BY exp_store_order_items.order_id
HAVING COUNT(CASE exp_channel_data.field_id_50 WHEN '' THEN null ELSE 1 END) = COUNT(exp_store_order_items.order_id)
这会显示我要更新的订单的 ID,但由于某种原因,上面会出现语法错误。
SELECT exp_store_orders.id
FROM exp_store_orders
JOIN exp_store_order_items
ON exp_store_orders.id = exp_store_order_items.order_id
JOIN exp_channel_data
ON exp_store_order_items.entry_id = exp_channel_data.entry_id
GROUP BY exp_store_order_items.order_id
HAVING COUNT(CASE exp_channel_data.field_id_50 WHEN '' THEN null ELSE 1 END) = COUNT(exp_store_order_items.order_id)
感谢任何帮助,谢谢!
【问题讨论】:
-
你得到什么错误?
-
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“JOIN exp_store_order_items ON exp_store_orders.id = exp_store_order_items.ord”附近使用正确的语法
-
有 field_id_49 吗?另外,分组你计算的东西有点奇怪!?!?!如果是我,我会从一些合适的 DDL 和想要的结果重新开始。
-
是的,有一个 field_id_49。
-
这就是我想要做的。我需要一种方法来标记我们商店中纯数字内容的订单。数字商品在 field_id_50 中有一个 url,每个订单可以有多个商品,所以我正在计算带有 URL 的商品的数量,并将该数字与订单中的商品总数进行比较。
标签: mysql sql join sql-update syntax-error