我有这样的表格:-
ID Name Email UserName
1 Johen mak jojo@yahoo.com
2 على يوسف jojo@gmail.com
3 gawil gorgy jojo@homail.com
4 موسي شفيق gop@yahoo.com
现在我需要从Email
插入UserName
值,如果Name
是阿拉伯语值,但没有@yahoo.com
或@gmail.com
....
但如果有双重UserName
.它必须添加_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
我该怎么做!!
这是这种情况的解决方案,但它不会检查重复的用户名
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 ;
用户替换 :
update table set username=(select replace(name,' ','_') from table);