两个代码都执行相同的作业,但哪个代码更好用,何时使用?
$names = [];
$Query = "SELECT DISTINCT name FROM names";
$stmt = $conn->prepare($Query);
$stmt->execute();
while ($name = $stmt->fetch()) {
$names[] = $name['epic'];
}
$names = implode(',', $names);
$Query = "SELECT GROUP_CONCAT(DISTINCT name) AS names FROM names";
$stmt = $conn->prepare($Query);
$stmt->execute();
$row = $stmt->fetch();
$names = $row['names'];
答案 0 :(得分:2)
这取决于。 GROUP_CONCAT()
具有group_concat_max_len
系统选项强加的限制,默认情况下其长度为1024(more info)。
此外,它将连接非空值,您可能希望以不同的方式处理它们,而不是忽略它们。