-1

我正在登录一个学校网站,我有一个名字列表,名字+姓氏。现在我有这个代码:

UPDATE tblusers t1
INNER JOIN
(
   SELECT 
     UserId,
     CONCAT(SUBSTRING(Surname, 1 ,4), SUBSTRING(Firstname,1,4)) Login
   FROM tblusers
) t2 ON t1.UserId = t2.UserId
SET t1.login = t2.login

例如:Johny bravo的登录名是bravjohn。但是当有人被称为“ Van Mullem Arnault ”时,这变成了 Van Arna 我如何摆脱那个空间?或特殊名称的“-”号。所以我实际上想要“ Van Mullem Arnault ”--> VanMArna

我一直在网上和这里寻找,但并没有真正找到有趣的东西。谢谢你调查它:)

4

2 回答 2

2

你可以应用TRIM功能

....CONCAT(TRIM(SUBSTRING(Surname, 1 ,4)), TRIM(SUBSTRING(Firstname,1,4)))....

或者字符串在字符串的内部,使用REPLACE

....CONCAT(REPLACE(TRIM(SUBSTRING(Surname, 1 ,4)), ' ',''), 
           REPLACE(TRIM(SUBSTRING(Firstname,1,4)), ' ', ''))....
于 2012-11-11T08:53:46.673 回答
1

使用MySQL 替换

UPDATE tblusers t1
INNER JOIN
(
   SELECT 
     UserId,
     CONCAT(REPLACE(Surname, ' ' ,''), REPLACE(Firstname, ' ','')) Login
   FROM tblusers
) t2 ON t1.UserId = t2.UserId
SET t1.login = t2.login
于 2012-11-11T08:57:29.250 回答