我需要将三列更改为单列,所有数据都可以帮助
这是我的查询
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;
答案 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)
您可以使用CONCAT或CONCAT_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;