首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在sql查询中使用动态数组

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

Stack Overflow用户
提问于 2016-05-05 12:00:47
回答 2查看 1.5K关注 0票数 1

我的问题是:

代码语言:javascript
代码运行次数:0
运行
复制
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')更改为动态数组,如

代码语言:javascript
代码运行次数:0
运行
复制
SELECT nomInteretUser, idUser, COUNT(nomInteretUser) as num
FROM userInteret
WHERE nomInteretUser IN ($array)
GROUP BY idUser

注:$array是一个包含互联网络列表的数组

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-05 12:04:12

使用implode()。试试下面的代码。您需要将数组转换为字符串。因此,在这里,我们将用逗号将其内爆,用','字符串等引号分隔,并在查询中使用。

代码语言:javascript
代码运行次数:0
运行
复制
$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";

查看在线演示: 单击此处

票数 2
EN

Stack Overflow用户

发布于 2016-05-05 12:04:23

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

implode()函数将连接像:piano','flute','chien这样的数组。

我们需要一个单引号,开始和结束。

所以,在implode()之前和后面添加它,比如:"'".implode("','",$array)."'"

代码语言:javascript
代码运行次数:0
运行
复制
$array = array('piano','flute','chien');
WHERE nomInteretUser IN('".implode("','",$array)."')";

工作演示

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37050057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档