我有一个包含此类数据的 mysql 表
TACOMA, Washington, 98477
现在我有数千个这样的行。我希望以如下方式操纵数据:
TACOMA, Washington
通过 mysql 是否可以,或者我必须手动执行此操作。
您可以使用:
SELECT SUBSTRING_INDEX('TACOMA, Washington, 98477', ',', 2)
您可以在这里阅读更多内容。
更新声明:
UPDATE my_table
SET my_col = SUBSTRING_INDEX(my_col, ',', 2)
您需要将
my_table
替换为您的表名称,将 my_col
替换为您需要更新的列。
可能是这样。计算逗号的数量(通过检查长度与删除所有逗号的长度),然后使用 SUBSTRING_INDEX 获取字符串最多为逗号的数量:-
SELECT SUBSTRING_INDEX(col, ',', LENGTH(col) - LENGTH(REPLACE(col, ',', '')))
FROM SomeTable
substring_index(col, ',',-1)
将给出从最后一个逗号索引到字符串末尾的字符串
replace(col,concat(',',substring_index(col, ',',-1)),'')
如果有问题的字符串来自某个复杂的函数,则类似以下内容应该可以工作(未经测试;可能有一个相差一的错误):
SELECT REVERSE(SUBSTRING_INDEX(REVERSE(string), ',', 1))