我有这段代码:
GROUP_CONCAT(
CONCAT(
DATE_FORMAT(je.date_entered, '%m/%d/%Y - %h:%i%p'),
' by ',
'\n',
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(je.description, '<br />', '\n'),
''', '\''),
'"', '"'),
'<', '<'),
'>', '>')
),
'\n\n' ORDER BY je.date_entered DESC SEPARATOR ''
) AS enteries
工作正常。当我添加这个子查询时:
' by ', (SELECT first_name FROM users WHERE id = je.created_by),
导致此组Concat:
GROUP_CONCAT(
CONCAT(
DATE_FORMAT(je.date_entered, '%m/%d/%Y - %h:%i%p'),
' by ',
(SELECT first_name FROM users WHERE id = je.created_by),
'\n',
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(je.description, '<br />', '\n'),
''', '\''),
'"', '"'),
'<', '<'),
'>', '>')
),
'\n\n' ORDER BY je.date_entered DESC SEPARATOR '')
AS enteries
它打破了整个dang的事情,没有造成任何错误,只是返回null。
这可能看起来很毛茸茸,但是我没有选择将所有内容放在php中 - 它必须在选择过程中全部在mysql中完成。
P.S。我没有发布输入查询,因为它太可笑了但是如果你想要我的话我可以。
答案 0 :(得分:0)
这是我最后的工作解决方案:
GROUP_CONCAT(CONCAT(DATE_FORMAT(je.date_entered, '%m/%d/%Y - %h:%i%p'), ' by ', IF((SELECT first_name FROM users WHERE id LIKE je.created_by) IS NULL, '', (SELECT first_name FROM users WHERE id LIKE je.created_by)), ' ', IF((SELECT last_name FROM users WHERE id LIKE je.created_by) IS NULL, '', (SELECT last_name FROM users WHERE id LIKE je.created_by)), '\n', REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(je.description, '<br />', '\n'), ''', '\''), '"', '"'), '<', '<'), '>', '>')), '\n\n' ORDER BY je.date_entered DESC SEPARATOR '') AS enteries
答案 1 :(得分:0)
当您在group_concat
和concat
中使用子查询时,他们将返回:
据推测,您的子查询没有返回任何行或返回NULL值。