我有这样的表: -
ID Name Email UserName
1 Johen mak jojo@yahoo.com
2 على يوسف jojo@gmail.com
3 gawil gorgy jojo@homail.com
4 موسي شفيق gop@yahoo.com
现在我需要从UserName
插入Email
Name
,如果@yahoo.com
是阿拉伯语值,但没有@gmail.com
或UserName
.... < / p>
但如果有双重_1
。必须添加_2
或ID Name Email UserName
1 Johen mak jojo@yahoo.com Johen_mak
2 على يوسف jojo@gmail.com jojo
3 gawil gorgy jojo@homail.com gawil_gorgy
4 موسى شفيق jojo@yamail.com jojo_1
...
所以表格必须如下: -
{{1}}
我怎么能这样做!
答案 0 :(得分:0)
用户替换:
update table set username=(select replace(name,' ','_') from table);
答案 1 :(得分:0)
这是针对此案例的解决方案,但它不会检查重复的用户名
update
yourtable
set username
= case when NOT name REGEXP '[A-Za-z0-9]'
then substring_index(email,'@',1)
else replace(name,' ','_') end ;
现在另一种解决方案是在用户名末尾添加id
,以便所有用户名都是唯一的
update
yourtable
set username
= case when NOT name REGEXP '[A-Za-z0-9]'
then concat(substring_index(email,'@',1),'_',id)
else concat(replace(name,' ','_'),'_',id) end ;