我需要更改数据库中的多个记录。我是新手,所以如果有人看看我到目前为止通过我的研究得出的结果并让我知道这看起来是否正确我会很感激。
我有几千个字段包含" 0"我需要删除所有" 0"所以它什么都不包含所以我运行了一个查询来查找它们。
SELECT *
FROM `wp_postmeta`
WHERE `meta_key` = '_regular_price'
AND `meta_value` = '0'
我现在需要" meta_value"的所有记录或行。包含" 0"是空的。环顾四周后,我想我可以在phpMyAdmin查询中运行以下内容来删除" 0"来自每个" meta_value"包含" 0"并留下所有其他人。
以下内容是否正确?
UPDATE `wp_postmeta` SET `meta_value` = '' WHERE `meta_value` =0;
感谢您的帮助。
答案 0 :(得分:0)
如果要从数据库中删除某些内容,则需要使用:
DELETE FROM `wp_postmeta` WHERE `meta_value` = 0 AND `meta_key` = '_regular_price'
您必须了解包含''
(字符为零的字符串),0
(整数),'0'
(包含0的字符串)的值之间的区别和NULL
值(甚至根本没有值)。
如果meta_value
列包含VARCHAR
或INT
(在这种情况下,我认为是varchar),并且该列可能包含NULL
值,请检查您的数据库(=可为空的)。
答案 1 :(得分:0)
好的,我刚刚尝试了以下
UPDATE `wp_postmeta` SET `meta_value` = '' WHERE `meta_key` = '_regular_price' AND `meta_value` = '0';
它有效!
所以使用这个我能够在一列中更新表的多行以包含空值而不是NULL值但是空值。它更新了3562条记录,仅剩下其他记录。
感谢大家的建议,提示和帮助,他们帮助我朝着正确的方向前进。