问题标签 [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.
jpa - JPA Criteria API 检查实体集合是否包含某些元素或其中之一
我想知道如何创建谓词,该谓词将过滤集合属性包含集合中的元素的实体,这些元素使用 JPA 规范作为参数给出。在此示例中,我正在为 UserEntity 构建查询以返回属于参数列表中包含的组的用户。
但是,如果我理解正确,如果所有或更少的组都在此列表中,它将返回 true。
我正在寻找解决方案,其中a)列表中的所有元素都在实体集合中b)至少一个(或类似的方式)
有没有一些简单的方法可以实现这一目标?事实上,我真的不需要 GroupEntity 的任何东西,所以我认为没有必要加入
感谢帮助
sql - DELETE FROM 查询上的多个 IN 条件引发 #245 转换类型错误
我有一个如下表设置:
它包含更多行,但我只想删除上面列出的行。我在下面进行了以下查询来执行此操作,但是当您将第三个值添加到名称的 IN 条件时,我得到:
ErrorNumber 245 - “将 varchar 值转换为数据类型 int 时转换失败。”
如果我删除了使 IN 条件为 1 或 2 的 3 个名称中的任何一个,它运行正常,但我需要在同一个查询中删除第三行。我该怎么做才能做到这一点?
sql-server - SQL Server:使用 LIKE 将字符串列表与通配符进行比较
我正在尝试找到一种方法来将字符字段与存储在查找表中的几个字符串通配符进行比较。例如,表 A 是我的主表。表 A 中有一个名为“代码”的列,我需要对其进行评估。我想找到所有行WHERE Code LIKE "ABC%", "A%", or "A12%"
。这三个字符串存储在一个名为 Table B 的查找表中。我试图不惜一切代价避免对这些通配符进行硬编码。有没有办法做类似的事情WHERE A.Code LIKE (SELECT * FROM B)
?
谢谢!
sql - 具有许多不使用部分索引的值的 Postgres IN 子句
我正在使用 Postgres 9.2.24。
我有一个名为_order
大约 100,000,000 行的表。该表有一个名为 的列merged_id int8
。大约 2,000,000_order
行有一个merged_id
值,其余的为空。
我发现两种不同的 Postgres 行为,我在其中_order
使用查询进行搜索
如果我创建这样的索引:
无论 in 子句中有多少个 id(从 1 到 50 到 100 到 200 到 1000 的测试)EXPLAIN
都显示搜索将使用index_scan
.
但是,如果我改为创建此部分索引:
EXPLAIN
在子句中显示seq_scan
100 多个 id 编号。WHERE
为什么是这样?
有什么办法可以解决吗?
java - IN 子句中的多个列 Apache Derby
我有以下 SQL 查询:
上面的代码行在 Oracle 中使用上述查询成功生成了一个PreparedStatement
对象,但在 Apache Derby 中,它抛出了以下异常:
有人可以解释如何在 DERBY 的 IN 子句中查询多个列。
参考帖子:
http ://apache-database.10148.n7.nabble.com/Using-IN-clause-with-multiple-columns-td98558.html
谢谢!
sql - 如何防止内部选择表达式中的 SQL Server 错误(使用“IN”和“EXISTS”关键字)
我有两个不同的表,它们的不同列如下:
每个程序员都知道,如果我们用错误的语法编写查询,查询编译器应该给我们一个错误。比如这个:
但是如果我们使用这个错误的查询作为内部选择,不幸的是 SQL 会执行它:
并且以下错误查询也将执行并返回所有行T1
当我们使用这些错误的查询时,情况会变得更糟,UPDATE
例如:
现在,我想防止这个错误。我可以强迫我的数据库开发人员小心,但是有没有系统的方法来防止这个错误?
sql - PostgreSQL =ANY 和 IN
最近我读了Quantified Comparison Predicates – Some SQL's Rarest Species:
事实上,SQL 标准将IN 谓词定义为 = ANY() 量化比较谓词的语法糖。
很公平,基于其他答案,例如:什么是“SOME / ANY”和“IN”</a> 或Oracle:'= ANY()' vs. 'IN ()' 我假设我可以使用它们互换。
现在这是我的例子:
问题是为什么第一个查询有效而第二个返回错误?
php - 如何在 SQL IN 运算符子查询中使用限制和偏移量?
例如:
正确的方法是什么?
android - 房间 - 选择带有 IN 条件的查询?
是否可以将 SQLite 的IN
条件与 Room 一起使用?
我正在尝试从我的数据库中选择一个项目列表,其中某个列(在本例中为TEXT
列)的值与一组过滤器值中的任何一个匹配。据我所知,这在 SQL 和 SQLite 中很容易完成,只需在您的语句中添加一个IN
条件(请参见此处)。但是,我似乎无法使其与 Room 一起使用。SELECT
我不断收到此错误:
(调用 DAO@Query
注释方法的输入filterValues
)
我现在尝试了三种不同的方法:
- 将参数作为
List<String>
- 将参数作为
String[]
- 最后将参数简单地传递为 a
String
,但格式为(value_1, value_2, ..., value_n)
特别是最后一个应该很容易工作,因为它将(或至少应该)直接转换为,如果您只是直接访问数据库SELECT * FROM Table WHERE column IN (value_1, value_2, ..., value_n)
,这就是您手动写出的确切方式。SELECT
sql - 如何在 SQL Server 2014 中提取只有 gmail、hotmail、yahoo 电子邮件地址的记录?
我在数据库中有一个包含电子邮件地址的记录列表。
我想提取只有@gmail、@Hotmail 和@Yahoo 电子邮件地址的记录。我还想要按域名排序的记录。
我的代码:
我遇到的问题是我得到零记录,因为我没有电子邮件地址为 %@GMAIL 或 %@HOTMAIL 或 %@YAHOO 的记录。
如果我将代码更改为:
然后我会得到所有带有 Gmail 地址的记录。但我想要所有上述电子邮件地址的记录。
我也试过: