带有 Where 条件的 HSQLDB 问题

Posted

技术标签:

【中文标题】带有 Where 条件的 HSQLDB 问题【英文标题】:HSQLDB issue with Where condition 【发布时间】:2014-03-05 11:11:05 【问题描述】:

我正在使用 HSQLDB 1.8.10 在 Eclipse SWT 中工作。我尝试的查询是:

SELECT id, name, dept FROM students WHERE name='Sachin' OR name='Prakash' AND dept='ECE'

理想情况下,上述查询应获取 ECE 部门中名称为 Sachin 或 Prakash 的所有学生。但是该查询没有考虑第三个条件,即它也从其他部门获取学生,而不仅仅是 ECE。此外,如果我查询为:

SELECT id, name, dept FROM students WHERE name='Sachin' OR name='Prakash' AND dept='abcdef'

在这里,我将部门指定为“abcdef”,即使名称“abcdef”中没有这样的部门,它仍会获取与以前相同的记录。

其实

    HSQLDB 如何在 Where 条件下工作? 如果我们在同一个查询中同时使用“AND”和“OR”条件,我们需要做些什么吗

我已经尝试过 google 和 ***,但我找不到任何相关的答案。请帮我理解。

【问题讨论】:

【参考方案1】:

这是旧版本的 HSQLDB。您应该使用最新版本 2.3.2。

用老版本,试试把条件用括号括起来,看看能不能正常工作

SELECT id, name, dept FROM students WHERE (name='Sachin' OR name='Prakash') AND dept='ECE'

【讨论】:

以上是关于带有 Where 条件的 HSQLDB 问题的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB 中 WHERE 和 ORDER BY 的性能问题

带有 WHERE 条件和 INNER JOIN 的 SELECT 命令

使用带有标量函数的 where 条件与使用交叉应用和表值函数的 where 条件

带有 where 条件的 PL/SQL 更新查询作为带有一些空值的选择查询

如何在 laravel 8 中添加带有 where 条件的验证规则?

HSQLDB 中的日期差异