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

时间:2013-07-02 09:01:34

标签: mysql sql

我有一个包含这种数据的mysql表

TACOMA, Washington, 98477

现在我有成千上万的这样的行。我希望以这样一种方式操纵数据:

TACOMA, Washington

是否可以通过mysql或我必须手动执行。

3 个答案:

答案 0 :(得分:21)

您可以使用:

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

您可以阅读更多here

更新声明:

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

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:5)

substring_index(col, ',',-1)

将从逗号的最后一个索引到字符串

的结尾给出字符串
replace(col,concat(',',substring_index(col, ',',-1)),'')