MySQL GROUP_CONCAT:格式化输出

Dod*_*nas 2 php mysql group-concat

我目前有以下查询:

SELECT group_concat(DISTINCT usrFirst, usrLast) as receiver_name  //etc
Run Code Online (Sandbox Code Playgroud)

使用PHP时,它会输出我的名字列表,如下所示:

<?php 
    echo $row['receiver_name'];

    //Outputs: JohnDoe,BillSmith,DaveJones

    //Desired output: John Doe, Bill Smith, and Dave Jones
Run Code Online (Sandbox Code Playgroud)

我需要帮助搞清楚三件事:

  1. 如何在名字和姓氏之间加一个空格?

  2. 如何在每个逗号后插入一个空格?

  3. 如何在显示姓氏前添加"和"?

Qua*_*noi 5

SELECT  GROUP_CONCAT(CONCAT_WS(' ', usrFirst, usrLast)) as receiver_name
FROM    (
        SELECT  DISTINCT usr_first, usr_last
        FROM    mytable
        ) q
Run Code Online (Sandbox Code Playgroud)

这个解决方案将区分'Smith, John Davis''Davis Smith, John'(将返回'John Davis Smith'两次,而不是一次,因为他们是不同的人).