mysql - 需要帮助识别第 20 行的语法错误
问题描述
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 'DELETE FROM wp_postmeta WHERE post_id IN (select post_id from (SELECT pm.post' at line 20) 附近使用
-- Deleting all duplicate products in wp_posts table
DELETE FROM
wp_posts WHERE ID IN ( SELECT ID FROM
(
select ID,post_title,post_type,meta_value from
(SELECT wp_postmeta.ID,post_title,post_type ,meta_value,
row_number()over(partition by post_title order by wp_postmeta.meta_value) rn
FROM wp_postmeta
JOIN wp_posts ON wp_postmeta.post_id = wp_posts.id
WHERE wp_posts.post_type = 'Product'
AND wp_postmeta.meta_key = '_regular_price'
) t where t.rn <> 1
) AS aliasx
)
-- Deleting all corresponding wp_postmeta.post_ids that don't have a match in wp_posts.id after the duplicate deletion above
DELETE FROM wp_postmeta WHERE post_id IN (select post_id from (
SELECT pm.post_id
FROM
wp_postmeta pm
LEFT JOIN
wp_posts p
ON p.id = pm.post_id
WHERE
p.id IS NULL
) AS aliasy )
在 MYPHPAdmin 我得到这个:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(partition by post_title order by wp_postmeta.meta_value) rn ' at line 5
在在线验证器https://www.eversql.com/sql-syntax-check-validator/ 我得到这个:
您的 SQL 语法有错误;似乎错误就在附近:'(第 21 行的 post_title order by 分区
似乎是一大堆不同的错误,具体取决于我运行查询的位置。
解决方案
推荐阅读
- c - 使用 MSVC 命令行创建动态库
- python - 从 csv 文件中获取一些数字的平均值作为输入,并将平均值写入 python 3 中的输出 csv 文件
- python - 有条件地将多个列分配给另一个 DataFrame(条件确定分配该行中的哪一组列)
- python - 带有多个条件的 while 循环由“and”连接
- node.js - Javascript 承诺迭代/包含动态数量的参数
- api - API 调用失败并在 OneLogin 中超出速率限制
- javascript - 从 SQL 表中 Javascript 对象格式的字符串中过滤数组的字符串键
- excel - 在将数据粘贴到新工作表之前添加行(在特定单元格之间)
- sqlalchemy - 执行多个 SQL 提交或单个提交后跟另一个调用更好吗?
- oracle - ORA-01017: 无效的用户名/密码;尝试通过 ODP.NET (Oracle.ManagedDataAccess.Client) 连接时登录被拒绝