![](/img/trans.png)
[英]Create a unique username based on first letter of first name and entire last name in Laravel
[英]How do I get first name, middle name and last name as username with a dot in between the names and a number at the end for a unique username?
我正在研究一個項目,但是我想知道我如何獲得名字,中間名和姓氏作為用戶名,並在其全名和末尾的數字之間輸入一個唯一的用戶名? 在MySQL中。 就像Facebook的系統一樣。 , then it doesn't like a space in the middle. 我也想這樣,如果中間名是 ,那么它不喜歡中間有空格。
我嘗試了很多不同的方法,但是還沒有任何效果。
SELECT COALESCE(CONCAT(first_name, '.', COALESCE(CONCAT(middle_name, '.', last_name),
first_name,middle_name,last_name)), middle_name,'.', COALESCE(CONCAT(first_name, '.',
last_name),first_name,last_name)) AS username FROM users
那就是我接近的程度,但是如果他們沒有中間名,那就會出現問題,它將顯示兩個點而不是一個點。 但是我仍然需要一些東西來獲取名字,中間名和姓氏作為用戶名,並在其全名和最后一個數字之間添加一個點,以表示唯一的用戶名。
我不知道您想要的數字結尾是什么,但是對於名稱,請使用concat_ws()
:
select concat_ws('.', first_name, middle_name, last_name)
如果任何值均為NULL
則該值將被忽略(所以fl
而不是f..l
)。
如果您在名字/姓氏為NULL
時仍需要分隔符,請使用coalesce()
:
select concat_ws('.', coalesce(first_name, ''), middle_name, coalesce(last_name, ''))
您可以在最后使用concat()
或通過將其添加為參數來連接一個數字(在這種情況下,該數字之前會有一個點)。
如果要在用戶名的末尾添加數字,則可以使用用戶的id或SL值。 ID或SL列應為NOT NULL , AUTO INCREMENT 。 您可以使用:
select concat_ws('.', first_name, middle_name, last_name, id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.