代码之家  ›  专栏  ›  技术社区  ›  Toleo

我是否使用PHP while loop或SQL group\u concat

  •  -1
  • Toleo  · 技术社区  · 8 年前

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

    PHP方法

    $names = [];
    $Query = "SELECT DISTINCT name FROM names";
    $stmt = $conn->prepare($Query);
    $stmt->execute();
    while ($name = $stmt->fetch()) {
        $names[] = $name['epic'];
    }
    $names = implode(',', $names);
    

    SQL方法

    $Query = "SELECT GROUP_CONCAT(DISTINCT name) AS names FROM names";
    $stmt = $conn->prepare($Query);
    $stmt->execute();
    $row = $stmt->fetch();
    $names = $row['names'];
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Dan Beaulieu    8 年前

    视情况而定。 GROUP_CONCAT() 具有 group_concat_max_len 系统选项,默认长度为1024( more info ).

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

    推荐文章