【发布时间】:2017-02-12 15:35:44
【问题描述】:
我需要通过这个查询从我的数据库中获取用户:
SELECT * FROM users
WHERE first_name = 'Aragorn'
AND last_name = 'SonOfAratorn'
AND city = 'Osgiliot'
AND country = 'Gondor'
问题是在我的应用程序中,我经常会丢失城市或国家/地区,或者两者都丢失。
我可以为此进行 3 或 4 个 HQL 查询,但这似乎不是一个非常有效的解决方案。
有没有一种方法可以只使用一个查询来适应这些属性(城市和国家)中的一个或两个为空的情况,以及如何将该查询转换为 HQL?
我的数据库在 MySql 服务器上。
PS:
我尝试过类似的方法,但没有成功:
SELECT * FROM users
WHERE first_name = 'Aragorn'
AND last_name = 'SonOfAratorn'
AND city like IFNULL('%', <my-city-param>)
AND country like IFNULL('%', <my-country-param>);
我正在寻找类似 HQL 格式的内容。
提前致谢。 :)
【问题讨论】:
-
我更喜欢 Criteria 而不是 HQL。如果您愿意,我可以按标准提供解决方案))