首页 > 解决方案 > SQL 查询无法将字符串从大写字母更新为小写字母

问题描述

我正在尝试在 phpMyAdmin 中对我的 SQL 数据库进行搜索和替换。我正在将数据库从使用名为 more-fields 的折旧插件更新为 ACF。旧的 meta_keys 都是大写的,字符串中有空格。为了与 ACF 格式保持一致,我正在快速搜索和替换以更改 meta_keys。SQL 脚本适用于带有空格的字符串,但在搜索大写字符串时,我似乎无法让它找到行。我可以在表中看到 meta_key,但是当我模拟查询时 SQL 命令返回 0。

UPDATE `wp_postmeta` SET `meta_key` = 'contact_name' WHERE 'meta_key’ = 'Contact Name'

这个工作得很好。它在 wp_postmeta 表中找到包含单词“联系人姓名”的任何行并将其更改为“联系人姓名”

但...

UPDATE `wp_postmeta` SET `meta_key` = 'county' WHERE `meta_key` = 'County';

不会在 meta_key 中找到任何包含“县”的行。我在这里错过了什么愚蠢的东西吗?我可以清楚地看到它的 meta_key 中有很多行包含“县”这个词

提前谢谢大家。

标签: mysqlsql

解决方案


如果这不起作用:

 WHERE meta_key = 'County'

然后完全匹配不起作用。一种可能性——如果你看到了值——是隐藏字符。这会返回任何结果吗?

select meta_key
from wp_postmeta
where meta_key like '%County%';

如果这完全返回您想要的,那么您可以使用like条件进行过滤。如果它返回其他键,您可以调整like模式。


推荐阅读