就我而言,Presto连接到已配置为不区分大小写的MySQL数据库。但是,通过Presto进行的任何搜索似乎都区分大小写。
问题:
1)有没有一种方法来配置普雷斯托搜索是区分的敏感?如果不是,是否可以在Presto-MySQL连接器中进行某些更改以使搜索不区分大小写?
2)如果基础数据库不区分大小写,那么Presto搜索是否也不区分大小写?(我假设Presto仅生成查询计划,并且实际执行在基础数据库上进行)
示例:考虑以下有关MySQL的表格。
name
____
adam
Alan
select * from table where name like '%a%'
// returns adam, Alan on MySQL
// returns only adam on Presto
select * from table where name = 'Adam'
// returns adam on MySQL
// returns NIL on Presto
Run Code Online (Sandbox Code Playgroud)
Nei*_*gan 15
您可以使用regexp_like(), 并在正则表达式前面加上 ,(?i)以不区分大小写
select
*
from table_name
where
regexp_like(column_name, '(?i)fOO'); -- column contains fOO or FOO
Run Code Online (Sandbox Code Playgroud)
或者
select
*
from table_name
where
regexp_like(column_name, '(?i)^Foo'); -- column starts with fOO or FOO
Run Code Online (Sandbox Code Playgroud)
您必须通过将比较值标准化为较低或较高来明确要求不区分大小写的比较,如下所示:
select * from table where lower(name) like '%a%';
select * from table where lower(name) = lower('Adam');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |