gpt4 book ai didi

php - SQL TRIM 特定字段(和变量集)中的所有值

转载 作者:行者123 更新时间:2023-11-29 13:17:22 27 4
gpt4 key购买 nike

请原谅我问的是显而易见的问题,但我对 mySQL 完全不识字。

我指的是标准的wordpress DB安装,虽然这不是一个wordpress特定问题,但更多的是mySQL常识..

如果我想更改所有帖子中某个字段的所有值,我通常会这样做:

UPDATE `wp_postmeta` SET `meta_value` = replace(meta_value, 'old_value', 'new_value') WHERE `meta_key` LIKE 'my_meta_key'

问题如下:

在该特定数据库中,插入的初始值带有空格前缀和后缀,例如:

"city name" 

实际上被插入为

" city name "

当然,作为一个 PHP 人,我立即想到了 trim() 命令 - 我发现它存在 also in mySQL .

所以现在我想我可以这样做

UPDATE `wp_postmeta` SET `meta_value` = TRIM('meta_value') WHERE `meta_key` LIKE 'my_meta_key'

但是它不起作用..

我做错了什么?我知道 mySQL 是“ticks sensetive”(可以这么说)但我尝试了 'meta_value'`meta_value' (抱歉, Markdown 限制似乎截断了反引号)

执行 replace(meta_value, ' ', '') 是很愚蠢的,因为有些城市的名称中有空格,而 LTRIM RTRIM 对我来说也不太适用

我也知道有一种方法可以在 sql 中设置变量(@my_var)但就我而言,这样做的正确语法是什么?

SET @my_var = `meta_value`

然后

UPDATE `wp_postmeta` TRIM(@my_var) WHERE `meta_key` LIKE 'my_meta_key'

我当然知道如何在 php 循环中修复它(使用 trim() ),但我想了解在 mySQL 中执行此操作的最佳方法是什么..

最佳答案

要引用该列,您需要反引号:

UPDATE `wp_postmeta`
SET `meta_value` = TRIM(`meta_value`)
WHERE `meta_key` LIKE 'my_meta_key';

您的表达式 TRIM('meta_value') 正在修剪字符串 'meta_value',而不是列中的值。

关于php - SQL TRIM 特定字段(和变量集)中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com