我有一个包含这种数据的mysql表
TACOMA, Washington, 98477
现在我有成千上万的这样的行。我希望以这样一种方式操纵数据:
TACOMA, Washington
是否可以通过mysql或我必须手动执行。
答案 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)),'')