Php 渲染具有1:n关系的项网格的最优化查询是使用group_concat?
在我看来,在查询数据以呈现列表视图时,使用GROUP_CONCAT的性能最好,而在不使用GROUP_CONCAT处理大型表时,这将需要几个单独的查询。无论如何,这是真的吗 除了集团规模足够大之外,还有其他不利因素吗 当你让MySQL做脏活时,它也很容易使用;这将生成有效的json生成的sql:Php 渲染具有1:n关系的项网格的最优化查询是使用group_concat?,php,mysql,json,relationship,group-concat,Php,Mysql,Json,Relationship,Group Concat,在我看来,在查询数据以呈现列表视图时,使用GROUP_CONCAT的性能最好,而在不使用GROUP_CONCAT处理大型表时,这将需要几个单独的查询。无论如何,这是真的吗 除了集团规模足够大之外,还有其他不利因素吗 当你让MySQL做脏活时,它也很容易使用;这将生成有效的json生成的sql: <<<SQL SELECT CONCAT( '[{', GROUP_CONCAT( CONCAT( '"id":"', table.id,
<<<SQL
SELECT CONCAT(
'[{',
GROUP_CONCAT(
CONCAT(
'"id":"', table.id,
'"' "," '"filename":"', REPLACE('"', '\"', table.filenamehash),
'"' "," '"originalname":"', REPLACE('"', '\"', table.originalname),
'"'
) SEPARATOR '},{'
),
'}]'
) AS file_data
SQL;
如果其中任何一个值包含引号或反斜杠,它们将无法正确转义。这是一个主要的缺点。我会牺牲一些表现来克服这个问题。我添加了替换函数来解决这个问题,我认为这应该足够了吗?