gip*_*ani 2 mysql sql database hibernate jpql
我有一个简单的JPQL查询.(但这也适用于sql查询..)
FROM DomainObj d where d.field1 like 'TEST%' and d.field2 like '%';
Run Code Online (Sandbox Code Playgroud)
如果DB包含以下行:
1)field1 - >'TEST'; field2 - > null
查询什么都没回复!
如果DB包含以下值:
2)提交1 - >'测试'; field2 - >''
查询返回行!
如何在搜索类似'%'的同时包含空值,使查询尽可能简单(避免和/或子句?)
我正在实现在数据库中搜索实体的功能..我也同时搜索许多字段..
谢谢Marco
你不能在相等测试中直接使用null,因为null与所有东西都不相等,包括它自己.这就是is null测试的原因,例如:
select null = null -> null
select null <> null -> null
select 1 = null -> null
select 1 <> null -> null
select 1 + null -> null
Run Code Online (Sandbox Code Playgroud)
基本上为null是具有传染性的,并且会使与其比较或添加的任何内容无效.
所以,是的,你必须这样做
SELECT ... WHERE somefield LIKE '%...%' or somefield IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4488 次 |
| 最近记录: |