问题标签 [sql-in]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
21 回答
598951 浏览

sql - SQL中EXISTS和IN的区别?

SQL中的EXISTSand子句有什么区别?IN

我们应该什么时候使用EXISTS,什么时候应该使用IN

0 投票
3 回答
14247 浏览

php - 如何在 mysqli 准备好的语句中使用 IN 子句

我正在使用准备好的语句将一些旧代码移动到新的 msqli 接口,我在处理包含 IN 子句的 SQL 语句时遇到了问题。我通常会这样做:

将此转换为 mysqli 和准备好的语句,我尝试了多种解决方案:

以上失败,计算数组中的元素数量和更改 SQL 字符串中的问号数量以及为数组中的每个元素调用 bind_parm 也失败。仅使用逗号分隔的字符串也会失败。

我在谷歌上找不到关于这方面的好文档,那么你是如何解决这个问题的?

0 投票
2 回答
24232 浏览

sql - 在本机 sql 查询中使用 IN 子句

我们正在尝试为原生 sql 查询动态生成 IN 子句以返回 JPA 实体。Hibernate 是我们的 JPA 提供者。我们的代码看起来像这样。

这不起作用,in 子句无法识别通过这种方式传入的任何值。有谁知道这个问题的解决方案?

0 投票
17 回答
139946 浏览

sql - 按 IN 值列表排序

我在 PostgreSQL 8.3 中有一个简单的 SQL 查询,它获取了一堆注释。我为子句中的构造提供了一个排序的值列表:INWHERE

这会以任意顺序返回评论,在我看来,这些评论恰好是1,2,3,4.

我希望生成的行像IN构造中的列表一样排序:(1,3,2,4)
如何做到这一点?

0 投票
26 回答
206654 浏览

sql - 将充满逗号分隔值的 varchar 传递给 SQL Server IN 函数

使用 Like 和 In的
动态 SQL 逗号分隔值查询参数化查询的重复

我有一个 SQL Server 存储过程,我想将一个varchar完整的逗号分隔值传递给一个IN函数。例如:

这当然行不通。我得到错误:

将 varchar 值 '1,2,3,5,4,6,7,98,234' 转换为数据类型 int 时转换失败。

我怎样才能在不求助于构建动态 SQL 的情况下完成这个(或类似的事情)?

0 投票
8 回答
57964 浏览

php - MySQL IN 语句的 PDO 绑定值

我有一个关于 PDO 的问题,在被它困扰了很长一段时间后,我真的很想得到一个答案。

举个例子:

我将一组 ID 绑定到 PDO 语句以在 MySQL IN 语句中使用。

数组会说:$values = array(1,2,3,4,5,6,7,8);

数据库安全变量是$products = implode(',' $values);

因此,$products将是一个字符串,其值为:'1,2,3,4,5,6,7,8'

该声明将如下所示:

当然,$products将绑定到:products语句。

但是,当语句被编译并绑定值时,它实际上看起来像这样:

问题在于它将 IN 语句中的所有内容作为单个字符串执行,因为我已将其准备为逗号分隔值以绑定到语句。

我真正需要的是:

我实际上可以做到这一点的唯一方法是将值放在字符串本身中而不绑定它们,但是我肯定必须有一种更简单的方法来做到这一点。

0 投票
9 回答
152797 浏览

sql-server - SQL Server IN 与 EXISTS 性能

我很好奇以下哪个更有效?

我一直对使用有点谨慎,IN因为我相信 SQL Server 会将结果集变成一个大IF语句。对于大型结果集,这可能会导致性能不佳。对于小型结果集,我不确定两者是否更可取。对于大型结果集,EXISTS效率不是更高吗?

对比

0 投票
1 回答
396 浏览

mysql - mysql强制找到的结果顺序与IN子句的顺序匹配

这个问题不同于关于按 IN 子句对最终结果进行排序的常见问题。

我想强制包含 IN 子句的查询返回的结果与 IN 子句的顺序相匹配。

这是我正在处理的原始问题。

我想更改下面的progress=2查询progress=4progress=7以便session_idformation_page_hitsdatetime.

这是当前的查询:

这些条目

应该是查询的匹配项,但是:

不应该是匹配的。

此外:

应该是匹配的。

0 投票
1 回答
14969 浏览

sql - 在 Hibernate 3.2.2 的本机 sql 查询中使用 IN 子句

以类似于此处发现的问题的方式:在本机 sql 查询中使用 IN 子句;我试图IN()通过 Hibernate 中的本机 SQL 查询来使用子句。虽然另一个问题的作者能够使用 JPA,但我不能。此外,我坚持使用 3.2.2 版本。

似乎 Hibernate 本身不支持IN(),因为它在应用查询参数时试图将我的 ID 列表(长基元数组)转换为二进制形式:query.setParameter("publisherGroups", [1243536264532,1243536264533,1243536264535]);

从休眠:

SELECT sum(C2CReportedConversion) as c2CConversion, sum(C2CReportedRevenue) as c2CRevenue, sum(I2CReportedConversion) as i2CConversion, sum(I2CReportedRevenue) as i2CRevenue, sum(Clicks) as clicks, sum(Impressions) as impressions, sum(Requests) as requests, sum(Views) as views, coalesce(Name, DisplayName) FROM UiTemplateReportingCache JOIN AdUnit USING (AdUnitId) WHERE PublisherId = ? AND PublisherGroupId IN ( ? ) AND Date >= ? AND Date <= ? GROUP BY coalesce(Name, DisplayName)

从mysql日志:

SELECT sum(C2CReportedConversion) as c2CConversion, sum(C2CReportedRevenue) as c2CRevenue, sum(I2CReportedConversion) as i2CConversion, sum(I2CReportedRevenue) as i2CRevenue, sum(Clicks) as clicks, sum(Impressions) as impressions, sum(Requests) as requests, sum(Views) as views, coalesce(Name, DisplayName) FROM UiTemplateReportingCache JOIN AdUnit USING (AdUnitId) WHERE PublisherId = 1239660230591 AND PublisherGroupId IN (_binary'��\0ur\0[Jx ��u�\0\0xp\0\0\0 \0\0!���T\0\0!���U\0\0!���W\0\0!���m\0\0!���n\0\0!���t\0\0!���{\0\0!���|\0\0!���}\0\0!���~\0\0#��\0\0$|��S') AND Date >= '2011-03-17 00:00:00' AND Date <= '2011-03-18 23:59:59' GROUP BY coalesce(Name, DisplayName)

注意_binary开始IN()值的部分。完成这项工作的诀窍是什么?我正在使用的 Hibernate 版本会这样做吗?如果没有,我有什么选择?

提前致谢,

卡尔

0 投票
2 回答
706 浏览

mysql - 难以将数组用作 PDO“IN”查询的一部分

我正在尝试使用数组查询 MySQL 数据库。

没有收到任何错误消息,只有 0 个结果。任何帮助,将不胜感激!