我的查询:
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)."')";
工作演示