【发布时间】:2012-12-29 16:13:17
【问题描述】:
我有一个简单的 JPQL 查询。 (但这也适用于 sql 查询..)
FROM DomainObj d where d.field1 like 'TEST%' and d.field2 like '%';
如果数据库包含以下行:
1) 字段1 -> '测试';字段2 -> 空
查询不返回任何内容!
如果数据库包含以下值:
2) 归档1 -> '测试';字段2->''
查询返回行!
如何在搜索类似 '%' 的同时包含空值,使查询尽可能简单(避免和/或子句?)
我正在数据库中实现实体的搜索功能..我还同时搜索许多字段..
谢谢 马可
【问题讨论】:
-
null通常表示没有值,因此LIKE '%'返回这些行是没有意义的。 -
我更倾向于将其视为“未知”
-
你的代码是否完整?还是您简化了给我们举个例子?
and d.field2 like '%'无关紧要,因为正如您提到的那样,field2 上的任何值都将匹配(null 除外)
标签: mysql sql database hibernate jpql