我正在尝试将格式为fullname
的名称列(lastname, firstname
)拆分为MySQL中的两个单独列:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ',', 1), ' ', -1) as firstname, SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ',', 2), ' ', -1) as lastname FROM tablename;
这适用于大多数名称。但是,像“Del Torres Jr,Marcelo”这样的名字显示为
--------------------
lastname | firstname
--------------------
JR | Marcelo
--------------------
如何更改我的语句以捕获逗号后的所有名称?
答案 0 :(得分:1)
你能不能只使用:
SELECT SUBSTRING_INDEX(fullname, ',', 1) AS firstname
,SUBSTRING_INDEX(fullname, ',', -1) AS lastname
FROM table
我无法告诉您对' '
的匹配尝试了什么,但如果您只想修剪空格,则可以对这些值使用TRIM()
。
答案 1 :(得分:0)
这就是你想要的吗?
SELECT
SUBSTRING_INDEX(value, ' ,', 1) as lastname ,
SUBSTRING_INDEX(value, ' ,', -1) as firstname
FROM event;
在您的查询中,您应该将-1更改为1
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(fullname,',', 1),' ', -1) as firstname,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname,',', 2),' ', 1) as lastname
^--this should be 1
FROM tablename;