簡體   English   中英

如何獲得名字,中間名和姓氏作為用戶名,名稱之間要有一個點,最后一個數字用於唯一的用戶名?

[英]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()或通過將其添加為參數來連接一個數字(在這種情況下,該數字之前會有一個點)。

如果要在用戶名的末尾添加數字,則可以使用用戶的idSL值。 IDSL列應為NOT NULLAUTO INCREMENT 您可以使用:

select concat_ws('.', first_name, middle_name, last_name, id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM