mysql 把查询结果多行用逗号分隔组成一列
-- 串联多行id
SELECT GROUP_CONCAT(cast(`id` as char(10)) SEPARATOR ',') as id from project
用了 replace(content, ";" , char(13)) 只是把字段中的;去除了, 分行显示
换行符:CHAR(10)
回车符:CHAR(13)
获取行号
SELECT @rownum:=@rownum+1 rownum, CollectSn From
(SELECT @rownum:=0,bbgmain.* FROM qbdb.bbgmain WHERE collectsn!='' ORDER BY collectsn limit 10) t
concat以及group_concat的用法
https://baijiahao.baidu.com/s?id=1595349117525189591&wfr=spider&for=pc
mysql拼接多条查询结果并且加序列
SELECT GROUP_CONCAT(a.DESCRIPTION SEPARATOR '\n')
FROM (SELECT (@rowNum:=0) AS rowNo,CONCAT('公司内部来文:','\n',
GROUP_CONCAT((@rowNum:=@rowNum+1),DESCRIPTION,CHAR(13),'\n' SEPARATOR '\n')) DESCRIPTION
FROM pj_pro_receive_file_t
WHERE receive_file_type = (
SELECT lookup_code_id FROM fnd_lookup_code_t WHERE lookup_type = 'RECEIVE_FILE' AND lookup_code = 'NBLW') AND project_id = 173 AND receive_status = '1' AND DATE_FORMAT(creation_date, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')) a;
Mysql之一对多查询,如何将多条记录合并成一条记录
https://blog.csdn.net/qq_32071077/article/details/65936682
SELECT alarmTime,tempId, REPLACE(GROUP_CONCAT(DISTINCT rownum, '. ', alarmDesc ORDER BY rownum separator ';'), ';', char(13)) as alarmDesc
from
(
SELECT @rownum:=@rownum+1 rownum,
alarmTime,tempId, alarmDesc
from
(
SELECT
@rownum:=0,
ruleTemp.Fid AS tempId,
ruleTemp.Frule_describe AS alarmDesc,
CASE
WHEN ruleTemp.Fupdate_time < ruleTemp.Fcreate_time THEN
ruleTemp.Fcreate_time
WHEN ruleTemp.Fupdate_time > ruleTemp.Fcreate_time THEN
ruleTemp.Fupdate_time
WHEN ruleTemp.Fupdate_time IS NULL THEN
ruleTemp.Fcreate_time
WHEN ruleTemp.Fcreate_time IS NULL THEN
ruleTemp.Fupdate_time
ELSE
'未查到修改时间'
END alarmTime
FROM
t_rule_template ruleTemp
LEFT JOIN t_rule_set ruleSet ON ruleSet.Frule_template_id = ruleTemp.Fid
WHERE
ruleSet.Frisk_stock_id = 1
ORDER BY
alarmTime DESC,
ruleTemp.Fid
) t
) m
SELECT
winning_id,
GROUP_CONCAT(
IF (KEY = ‘微信’,CONCAT(‘微信 : ’,VALUE,‘,’),
IF (KEY = ‘手机’,CONCAT(‘手机 : ’,VALUE,‘,’),
IF (KEY = ‘地址’,CONCAT(‘地址 : ’,VALUE,‘,’),”)
))
) AS info
FROM
cj_lottery_record_user_info
GROUP BY
winning_id