Mysql选择多列到单列

时间:2017-05-17 08:13:56

标签: php mysql

我需要将三列更改为单列,所有数据都可以帮助

这是我的查询

SELECT emp_id
     , testing_emp_id
     , bug_emp_id 
  FROM tbl_screen_incharge 
 WHERE project_id = "PRJ0016" 
   AND (emp_id!="" OR testing_emp_id!="" OR bug_emp_id!="" )
 GROUP 
    BY emp_id 
     , testing_emp_id
     , bug_emp_id;

image

2 个答案:

答案 0 :(得分:0)

您可以使用UNION

SELECT `tbl_screen_incharge`.`emp_id`
FROM `tbl_screen_incharge`
UNION
SELECT `tbl_screen_incharge`.`testing_emp_id`
FROM `tbl_screen_incharge`

我已经使用我的数据库对此进行了测试。

答案 1 :(得分:0)

您可以使用CONCATCONCAT_WS在单个字段中选择所有字段。

CONCAT:

  

返回连接参数产生的字符串。可以   有一个或多个参数。如果所有参数都是非二进制字符串,   结果是一个非二进制字符串。如果参数包含任何二进制文件   字符串,结果是二进制字符串。数字参数是   转换为等效的非二进制字符串形式。

mysql> SELECT CONCAT('My', 'S', 'QL');
        -> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
        -> NULL
mysql> SELECT CONCAT(14.3);
        -> '14.3'

CONCAT_WS:

  

CONCAT_WS()代表Concatenate With Separator,是一个特殊的   形式的CONCAT()。第一个参数是其余部分的分隔符   争论。在字符串之间添加分隔符   级联。分隔符可以是字符串,其余部分也可以   参数。如果分隔符为NULL,则结果为NULL。

mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
        -> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
        -> 'First name,Last Name'

或者在您的情况下,您可能想尝试:

SELECT CONCAT_WS(' ', emp_id, testing_emp_id, bug_emp_id) AS merged_result 
FROM `tbl_screen_incharge` 
WHERE project_id="PRJ0016" 
    AND (emp_id!="" OR testing_emp_id!="" OR bug_emp_id!="" )
GROUP BY emp_id,testing_emp_id,bug_emp_id;