-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

例:Johnybravoのログイン名はbravjohnになります。しかし、誰かが「ヴァン・ムレム・アルノー」と呼ばれると、これはヴァン・アルナ になります。どうすればそのスペースを取り除くことができますか?または、特別な名前の場合は「-」記号。だから私は実際に「VanMullemArnault 」が欲しい-> 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 に答える