Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是使用PHP while循环还是SQL组_concat_Php_Mysql_Sql_Pdo - Fatal编程技术网

我是使用PHP while循环还是SQL组_concat

我是使用PHP while循环还是SQL组_concat,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,这两种代码的作用相同,但哪种代码更适合使用以及何时使用 PHP方法 SQL方法 视情况而定GROUP\u CONCAT()具有由GROUP\u CONCAT\u max\u len系统选项施加的限制,其长度默认为1024() 此外,它还将连接非空值,您可能希望以不同的方式处理这些值,而不仅仅是忽略它们。您是否在寻找这种响应:通常您应该在sql内部尽可能多地执行这些操作,因为dbms经过优化以执行这类操作operations@MOHAMMEDYASSINEChabli不,那完全是另一个问题。正如

这两种代码的作用相同,但哪种代码更适合使用以及何时使用

PHP方法
SQL方法
视情况而定
GROUP\u CONCAT()
具有由
GROUP\u CONCAT\u max\u len
系统选项施加的限制,其长度默认为1024()


此外,它还将连接非空值,您可能希望以不同的方式处理这些值,而不仅仅是忽略它们。

您是否在寻找这种响应:通常您应该在sql内部尽可能多地执行这些操作,因为dbms经过优化以执行这类操作operations@MOHAMMEDYASSINEChabli不,那完全是另一个问题。正如我读到的,我可以根据需要增加这个
group\u concat\u max\u len
,但如果我将限制设置为
9999999
,这不会对数据库产生一些影响吗?@Toleo好的,它还受到
max\u allowed\u packet
的约束,这可能会产生影响。更多信息请参见此处:@Toleo从不询问虚构的问题question@Toleo沃特?自动完成包含200000个条目?它将发送兆字节!和往常一样,一个奇怪的请求显示出缺乏知识,您应该了解什么是自动完成以及它是如何实现的。@Toleo首先创建一个由50000个逗号分隔的值组成的字符串是毫无意义的。你越早理解这一点,浪费的时间就越少。你真的认为用户会向下滚动50000条建议吗?你在想什么?
$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'];