如何在sql查询中使用动态数组


how to use a dynamic array in sql query

我的查询:

SELECT MAX(num)
FROM (SELECT nomInteretUser,idUser,COUNT(nomInteretUser) as num
      FROM userInteret
      WHERE nomInteretUser IN ('piano','flute','chien') GROUP BY idUser
     )

目标是将IN ('piano','flute','chien')更改为动态数组像

SELECT nomInteretUser, idUser, COUNT(nomInteretUser) as num
FROM userInteret
WHERE nomInteretUser IN ($array)
GROUP BY idUser

注意:$array是一个包含interet 列表的数组

使用implode()。请尝试以下代码。您需要将数组转换为字符串。因此,在这里,我们将用逗号分隔它(用引号分隔),如','字符串,并在查询中使用它。

$array =array('piano','flute','chien');
$string = implode("','", $array);
$query = "SELECT nomInteretUser, idUser, COUNT(nomInteretUser) as num
FROM userInteret
WHERE nomInteretUser IN ('".$string."')
GROUP BY idUser";

查看在线演示:单击此处

您可以使用内爆()函数。

implode()函数将加入类似于:piano','flute','chien的数组。

我们需要一个单一的报价和开始和结束。

因此,在implode()之前和之后添加它,如:"'".implode("','",$array)."'"

$array = array('piano','flute','chien');
WHERE nomInteretUser IN('".implode("','",$array)."')";

工作演示