我认为这很容易......也许不是。我有一个'fullname'表,我想将名字和姓氏分成2列(fname和lname)。
以下语法为我提供了我想要的数据:
SELECT
`fullname` ,
SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1) AS fname,
SUBSTRING_INDEX(`fullname` ,' ', 1)AS lname
FROM MyTable
...但是,如何将'fname'和'lname'字段保存到同一个表中的不同列?
[示例数据 - 如果人名是John Michael Jones,'全名'字段如下所示:JONES JOHN MICHAEL]
答案 0 :(得分:0)
您只需更新表格并将列设置为fullname
update MyTable
set fname = SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1),
lname = SUBSTRING_INDEX(`fullname` ,' ', 1)
答案 1 :(得分:0)
如果要在同一个表上执行更新,可以使用以下命令:
update mytable
set fname = SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1),
lname = SUBSTRING_INDEX(`fullname` ,' ', 1)
答案 2 :(得分:0)
要更新为firstname和lastname值,则需要使用update:
update MyTable
set fname = SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1),
lname = SUBSTRING_INDEX(`fullname` ,' ', 1)
如果你想设置大写,那么用户上层函数以及
update MyTable
set fname = upper(SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1)),
lname = upper(SUBSTRING_INDEX(`fullname` ,' ', 1))