MySQL 查询 0 行受影响

标签 mysql sql phpmyadmin

简单地说,我尝试在 PhpMyAdmin 中执行此操作:

update wp_postmeta.meta_value = wp_posts.id where

wp_posts.post_name=articles.image

AND wp_posts.post_type=attachment

AND wp_postmeta.meta_key=_thumbnail_id

通过这个 MySQL 查询:

update wp_postmeta m
join articles a on (m.post_id = a.id)
join wp_posts p on (m.post_id = p.ID)
set m.meta_value = p.ID
where p.post_name=a.image
AND a.image != NULL
AND p.post_type='attachment'
AND m.meta_key='_thumbnail_id'

可以工作,但有 0 行受到影响! 有人可以帮忙吗?

最佳答案

将子查询与 Andomar 的答案结合使用。将联接与更新和删除语句一起使用并不好。

应该是这样的

UPDATE wp_postmeta m SET m.meta_value = (SELECT p.ID FROM wp_posts p, articles a 
WHERE m.post_id=p.ID AND m.post_id = a.id AND a.image IS NOT NULL 
   AND p.post_type='attachment' AND p.post_name=a.image) 
WHERE m.meta_key='_thumbnail_id'

首先备份!我没有对此进行测试。

如果不起作用,请尝试执行选择查询(如果可以选择它们)。如果没有选择(也可能不会),请检查与您的设计相对应的查询结构。

SELECT m.meta_value, (SELECT p.ID FROM wp_posts p, articles a 
WHERE m.post_id=p.ID AND m.post_id = a.id AND a.image IS NOT NULL 
   AND p.post_type='attachment' AND p.post_name=a.image)  AS pID
FROM wp_postmeta m
WHERE m.meta_key='_thumbnail_id'

也尝试一下你的第一个查询

SELECT m.meta_value, p.ID AS pID FROM wp_postmeta m
INNER JOIN articles a on (m.post_id = a.id)
INNER JOIN wp_posts p on (m.post_id = p.ID)
WHERE p.post_name=a.image
AND a.image IS NOT NULL
AND p.post_type='attachment'
AND m.meta_key='_thumbnail_id'

尝试使用/修改选择查询以找出问题。

关于MySQL 查询 0 行受影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061977/

相关文章:

mysql - 如何识别所有已完成任务的条目?

sql - STRING_AGG with distinct without sub-query

sql - 与字符串相比,Mysql 在where 子句中使用数字是否更快?

java - SQL/JAVA JDBC通讯链接偶尔出现错误

MySQL单表,根据多行选择值

mysql - 无法连接到 Docker 内的 MySQL 服务器

mysql - 在mysql选择查询中需要正则表达式

php - 如何在php中每次单击按钮时一一显示数据库中的项目

mysql - Rails 5—如何添加 UUID 列

mysql - 尝试通过 ssh 使用 phpmyadmin 连接到远程主机 mysql