mysql:如何删除字段开头或结尾的字符

Posted

技术标签:

【中文标题】mysql:如何删除字段开头或结尾的字符【英文标题】:mysql: How can I remove character at start or end of field 【发布时间】:2012-06-13 10:01:30 【问题描述】:

我有一个包含逗号分隔列表的字段。一些旧记录在字段的开头或结尾有逗号。我需要删除这些多余的逗号。

例子:

,the,their,thenthe,their,then

the,their,then,the,their,then

编辑:我正在寻找一个 UPDATE 语句。我需要更改记录。

【问题讨论】:

这是用于 SELECT 还是 UPDATE 语句? 用于更新。我需要删除它们。 【参考方案1】:

查看this网站

SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');

在你的情况下是 ',' 而不是 'xyz'

【讨论】:

这将返回删除尾随逗号的值,但不会修改数据库。为此,他们需要在更新语句中使用 TRIM()。 那些“智能引号”是有效的语法吗?【参考方案2】:

@codingbiz,感谢您提供网站链接:

快速示例:

SELECT TRIM(BOTH ',' FROM fieldname) from tablename

SELECT TRIM(LEADING ',' FROM fieldname) from tablename

SELECT TRIM(TRAILING ',' FROM fieldname) from tablename

谢谢!

【讨论】:

【参考方案3】:

问题是如何删除前导和尾随字符,我将向您展示一个带有更新查询的示例。

UPDATE your_table_name
SET your_record_name = TRIM(BOTH ',' FROM your_record_name)

【讨论】:

这个实际上是正确的,因为它实际上提供了一个有效的 UPDATE 语句。 完美答案!【参考方案4】:

您正在寻找TRIM function。

【讨论】:

【参考方案5】:

为避免其他表受到影响,您应该使用 where 子句。这些只会更新带有尾随','的行

UPDATE table_name 
set field_name = TRIM(TRAILING ',' FROM field_name)
WHERE field_name LIKE '%,';

不放 where 子句会影响我的空值行并使它们为空字符串

【讨论】:

以上是关于mysql:如何删除字段开头或结尾的字符的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 MySQL 字段中的前导和尾随空格?

从 JSON 对象/字符串或 Java 脚本变量中删除开头和结尾的双引号?

如何从字符串的开头和结尾删除换行符?

GNU R:如何在字符串的每个单词的开头和结尾删除重复的字符?

从 MATLAB 中字符串的开头和结尾删除 '''

为啥 Keycloak 管理控制台中的密码字段会删除我输入的密码开头和结尾的空格