php账号自动生成,在php中自动生成用户名

我想根据名字和姓氏自动生成用户名.例如,

如果firstname = John和lastname = Tory,那么username应该是johntory.但是,如果该用户名已经存在于数据库中,我想增加1表示同名,下一个用户名将是johntory2.

我在PHP中有这样的东西..

foreach($existing_users as $u){

if($u['username'] != $new_generated_username){

// Enter it directly...

}

else{

// increment count value...

}

}

但是,有一个问题,如果用户名像johntory5或其他东西……

有没有办法我可以通过检查所有内容直接在mysql的INSERT语句中更新.

解决方法:

您可以直接在INSERT语句中直接执行此操作,如下所示:

INSERT INTO User (username, first, last)

SELECT CONCAT('johntory', COUNT(id)), 'John', 'Tory'

FROM User WHERE username LIKE 'johntory%';

或者,如果你不喜欢前面的零,你可以使用这个:

INSERT INTO User (username, first, last)

SELECT CONCAT('johntory', CASE WHEN COUNT(id) = 0 THEN '' ELSE COUNT(id) END), 'John', 'Tory'

FROM User WHERE username LIKE 'johntory%';

这非常快速有效.它使用子查询来准备值,然后插入它们.

此外,这将比这里提供的任何PHP解决方案快许多倍,特别是如果您处理数十亿行.

就个人而言,我喜欢MySql的简洁性和性能

请享用!

〜Techdude

标签:php,mysql

来源: https://codeday.me/bug/20190609/1206766.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值