如何在Java中指定不区分大小写的搜索

时间:2016-04-01 05:03:42

标签: java sql case-insensitive

我目前有这个代码:

query = "select ID_OBJECT from "+Config.props.getProperty("Ob.SchemaName.Objects")+".sdm_doc_info where name like ? and typefileverscurr = 'DWG'";    

但是,这仅返回与大写DWG匹配的结果。 我希望我的搜索不区分大小写。 在这种情况下,如何使用?i? 我试过以下但我的Eclipse不喜欢它:

query = "select ID_OBJECT from "+Config.props.getProperty("Ob.SchemaName.Objects")+".sdm_doc_info where name like ? and typefileverscurr.matches('(?i:dwg)')";

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

通常我用两种方式来做这些工作,一种是使用SQL upper()lower()函数,如下所示:

"select ID_OBJECT from "+something+".sdme_doc_info where lower(typefileverscurr) = 'dwg'";

"select ID_OBJECT from "+something+".sdme_doc_info where upper(typefileverscurr) = 'DWG'";

另一种方法是在查询中使用like并混合上面的函数以使更加不敏感

"select ID_OBJECT from "+something+".sdme_doc_info where lower(typefileverscurr) like '%dwg%'";

"select ID_OBJECT from "+something+".sdme_doc_info where upper(typefileverscurr) like '%DWG%'";