Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql phpMyAdmin-无法更新_Mysql_Phpmyadmin_Sql Update - Fatal编程技术网

Mysql phpMyAdmin-无法更新

Mysql phpMyAdmin-无法更新,mysql,phpmyadmin,sql-update,Mysql,Phpmyadmin,Sql Update,好的,不习惯在phpMyAdmin中处理查询,但需要执行如下查询: MERGE INTO `wp_posts` AS T USING `wp_postmeta` AS S ON (S.`post_id` = T.`ID` AND S.`meta_key` = '_thumbnail_id' AND (S.`meta_value` = 0 || S.`meta_value` = '')) WHEN MATCHED THEN UPDATE SET T.`po

好的,不习惯在phpMyAdmin中处理查询,但需要执行如下查询:

MERGE INTO `wp_posts` AS T
   USING `wp_postmeta` AS S
        ON (S.`post_id` = T.`ID` AND S.`meta_key` = '_thumbnail_id' AND (S.`meta_value` = 0 || S.`meta_value` = ''))
WHEN MATCHED THEN
   UPDATE 
      SET T.`post_status` = 'private'
      WHERE T.`post_parent` = 0 AND T.`post_type` = 'product'
问题是,我一直从MySQL中得到语法错误,但找不到问题所在。基本上,我想在这里能够做的是从
wp\u postmeta
表中选择
all
post\u id
值,其中
meta\u key
=''u thumbnail\u id'和
meta\u value
为0或空字符串。然后,我需要将所有与
wp\u posts
表中的
id
值匹配的
post\u status
列更新为“private”,同时将
post\u父项匹配为0,将
post\u type`匹配为“product”

如何使用phpMyAdmin执行此操作

还尝试了以下查询:

UPDATE `wp_posts`
  SET `post_status` = 'private'
  WHERE `post_type` = 'product' AND `ID` IN (SELECT post_id FROM wp_postmeta WHERE meta_key = '_thumbnail_id' AND (meta_value = '0' || meta_value = ''));
当我运行上面的查询时,我得到0行受影响的数据,并且它不会更新任何内容。如果我在
in
语句中运行查询,就会返回一堆
post\u id
值。但它根本没有更新。为什么?

在此更新的另一次尝试:

UPDATE wp  
SET wp.`post_status` = 'private'
FROM `wp_posts` AS wp
    INNER JOIN `wp_postmeta` AS wpm ON(wpm.`post_id` = wp.`ID` AND wpm.`meta_key` = '_thumbnail_id' AND (wpm.`meta_value` = 0 || wpm.`meta_value` = ''))
WHERE 
wp.`post_type` = 'product' AND wp.`post_parent` = 0;
这些都不行。所有语法错误。。。最后一个给了我这个语法错误,我甚至不理解:

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解要使用的正确语法 “近”从
wp_发布为wp
内部连接
wp\u postmeta
作为第3行的wpm ON(wpm.
post\u id
=wp

编辑

已将上面的查询更改为如下所示:

UPDATE `wp_posts` AS wp
INNER JOIN `wp_postmeta` AS wpm ON (wpm.`post_id` = wp.`ID` AND wpm.`meta_key` = '_thumbnail_id' AND wpm.`meta_value` = 0)
SET wp.`post_status` = 'private'
WHERE wp.`post_type` = 'product' AND wp.`post_parent` = 0;

工作正常,但受到0行影响我不明白为什么…

我只提到您上次的尝试: 您的更新查询是错误的。(这也是错误所述,此处没有“发件人”选项)

如果要使用联接进行更新,则以下语法为:

UPDATE tabelle1 AS a
JOIN tabelle2 AS b
ON a.id = b.id
SET a.aktiv=1
WHERE xy like z

我不相信MySQL支持
merge
。在myPhpAdmin中如何实现这一点?谢谢,用此语法更新了我的问题,我得到了0行受影响…似乎不起作用(我不知道数据库的一致性,因此我建议检查字符串比较。请尝试“喜欢”比较:没有任何效果。这是使用Woocommerce插件和Wordpress。它不会将产品更改为私有,也不会在数据库中更改它。奇怪。我可以在phpMyAdmin中手动更改它的值,但是由于某些奇怪的原因,我没有使用代码!好的,谢谢,我明白了,但我必须做与我所做的相反的事情!干杯并感谢你的帮助。我基本上将所有产品设置为私有,然后只将具有图像ID的产品更新为发布。现在看起来很棒!