在SQL的LIKE语句中是否可以执行不区分大小写的搜索?

34 浏览
0 Comments

在SQL的LIKE语句中是否可以执行不区分大小写的搜索?

这个问题已经有答案了:

在Oracle中进行大小写不敏感的搜索

我正在使用Select查询,并且like语句的值是动态的。

  AND       e.rank_request_id = a.request_id
  AND       f.priority_request_id = a.request_id
  AND       b.status_type_id = c.status_id
  AND   b.status_request_id = a.request_id
  AND   a.request_id LIKE '%#form.searchbar#%'

但是,这只返回了每个字符在字符串#form.searchbar#中的大小写匹配的结果。

请建议一种解决方法,使它变得大小写不敏感。

admin 更改状态以发布 2023年5月22日
0
0 Comments

你可以降低a.request_id和form.searchbar

AND lower(a.request_id) LIKE '%#form.searchbar#%'

0
0 Comments

我不知道你在使用什么数据库,但如果是针对Oracle的话,你可以强制改变两个元素的大小写。但是这会增加执行时间的成本,因为它会针对该列中的所有值进行操作,如果数据量很大,则只有使用基于函数的索引才能解决这个问题。所以,针对Oracle再这样做:

AND UPPER(a.request_id) LIKE '%#UCase(Form.Searchbar)#%'

但是我建议你使用查询参数,因为它似乎来自用户输入的框,所以:

AND UPPER(a.request_id) LIKE 

0