更新表中的行并替换单词,然后检查它是否为阿拉伯语或英语值

时间:2014-11-19 07:31:50

标签: php mysql

我有这样的表: -

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.comUserName .... < / p>

但如果有双重_1。必须添加_2ID 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}}

我怎么能这样做!

2 个答案:

答案 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 ;