Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
Php SQL修剪特定字段(和变量集)中的所有值_Php_Mysql_Wordpress_Trim - Fatal编程技术网

Php SQL修剪特定字段(和变量集)中的所有值

Php SQL修剪特定字段(和变量集)中的所有值,php,mysql,wordpress,trim,Php,Mysql,Wordpress,Trim,恕我直言,我是个文盲 我指的是一个标准的wordpress DB安装,虽然这不是wordpress特有的问题,但更多的是mySQL常识 如果我想在所有帖子中更改某个字段的所有值,我通常会: UPDATE `wp_postmeta` SET `meta_value` = replace(meta_value, 'old_value', 'new_value') WHERE `meta_key` LIKE 'my_meta_key' 问题如下: 在该特定DB中,初始值插入空白前缀和后缀,例如: "

恕我直言,我是个文盲

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

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

UPDATE `wp_postmeta` SET `meta_value` = replace(meta_value, 'old_value', 'new_value') WHERE `meta_key` LIKE 'my_meta_key'
问题如下:

在该特定DB中,初始值插入空白前缀和后缀,例如:

"city name" 
实际上是作为

" city name "
当然,作为一个PHP爱好者,我立刻想到了
trim()
命令——我发现它是存在的

所以现在我想我可以

UPDATE `wp_postmeta` SET `meta_value` = TRIM('meta_value') WHERE `meta_key` LIKE 'my_meta_key'
但是它不起作用

我做错了什么?我知道mySQL是“滴答声敏感的”(可以这么说),但我尝试了
'meta\u value'
'meta\u value'
(抱歉,降价限制似乎会截断反滴答声)

replace(meta_值,,'')
是很无聊的,因为有些城市的名字中有空格,
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'
,而不是列中的值。

您根本不需要“`是吗?@Dagon…”。事实上,你不知道。@GordonLinoff谢谢,我怀疑这是一个回溯问题,但改变它(就像原来的问题一样)似乎没有帮助。我使用的phpMyAdmin似乎正在修剪值本身,因此当我检查值时,它们没有空格。。即使在真正的原始数据库中,他们也有它。(故意或错误?)无论如何,为了安全起见,如果出现问题,是否还有
pad
功能可以恢复?(我知道这不在原始问题中,但我找不到任何…)@ObmerkKronen。本质上没有“pad”,但您可以使用类似于
left(concat(col,space(100)),100)
的东西做同样的事情。