查询删除字符串中最后一个逗号之后的所有字符

问题描述 投票:0回答:4

我有一个包含此类数据的 mysql 表

TACOMA, Washington, 98477

现在我有数千个这样的行。我希望以如下方式操纵数据:

TACOMA, Washington

通过 mysql 是否可以,或者我必须手动执行此操作。

mysql sql
4个回答
39
投票

您可以使用:

SELECT SUBSTRING_INDEX('TACOMA, Washington, 98477', ',', 2)

您可以在这里阅读更多内容。

更新声明:

UPDATE my_table
    SET my_col = SUBSTRING_INDEX(my_col, ',', 2)

您需要将

my_table
替换为您的表名称,将
my_col
替换为您需要更新的列。


9
投票

可能是这样。计算逗号的数量(通过检查长度与删除所有逗号的长度),然后使用 SUBSTRING_INDEX 获取字符串最多为逗号的数量:-

SELECT SUBSTRING_INDEX(col, ',', LENGTH(col) - LENGTH(REPLACE(col, ',', '')))
FROM SomeTable

6
投票
substring_index(col, ',',-1)

将给出从最后一个逗号索引到字符串末尾的字符串

replace(col,concat(',',substring_index(col, ',',-1)),'')

0
投票

如果有问题的字符串来自某个复杂的函数,则类似以下内容应该可以工作(未经测试;可能有一个相差一的错误):

SELECT REVERSE(SUBSTRING_INDEX(REVERSE(string), ',', 1))
© www.soinside.com 2019 - 2024. All rights reserved.