兼容Oracle like
2. 功能说明
数据库名称 |
like模糊查询 |
oracle |
oracle的字符串类型是varchar2,支持对数字、日期、字符串字段类型的列用Like关键字配合通配符来实现模糊查询 |
IvorySQL |
IvorySQL的字符串基本类型是text,所以like是以text为基础上,其他IvorySQL的类型能隐式转换成text,这样不用创建opeartor就能自动转换 |
3. 测试用例
create table t_ora_like (id int ,str1 varchar(8), date1 timestamp with time zone, date2 time with time zone, num int, str2 varchar(8));
insert into t_ora_like (id ,str1 ,date1 ,date2) values (123456,'test1','2022-09-26 16:39:20','2022-09-26 16:39:20');
insert into t_ora_like (id ,str1 ,date1 ,date2) values (123457,'test2','2022-09-26 16:40:20','2022-09-26 16:40:20');
insert into t_ora_like (id ,str1 ,date1 ,date2) values (223456,'test3','2022-09-26 16:41:20','2022-09-26 16:41:20');
insert into t_ora_like (id ,str1 ,date1 ,date2) values (123458,'test4','2022-09-26 16:42:20','2022-09-26 16:42:20');
select * from t_ora_like where str1 like 'test%';
id | str1 | date1 | date2 | num | str2
--------+-------+-----------------------------------+-------------+-----+------
123456 | test1 | 2022-09-26 16:39:20.000000 +08:00 | 16:39:20+08 | |
123457 | test2 | 2022-09-26 16:40:20.000000 +08:00 | 16:40:20+08 | |
223456 | test3 | 2022-09-26 16:41:20.000000 +08:00 | 16:41:20+08 | |
123458 | test4 | 2022-09-26 16:42:20.000000 +08:00 | 16:42:20+08 | |
(4 rows)
select * from t_ora_like where date1 like '2022%';
id | str1 | date1 | date2 | num | str2
--------+-------+-----------------------------------+-------------+-----+------
123456 | test1 | 2022-09-26 16:39:20.000000 +08:00 | 16:39:20+08 | |
123457 | test2 | 2022-09-26 16:40:20.000000 +08:00 | 16:40:20+08 | |
223456 | test3 | 2022-09-26 16:41:20.000000 +08:00 | 16:41:20+08 | |
123458 | test4 | 2022-09-26 16:42:20.000000 +08:00 | 16:42:20+08 | |
(4 rows)
select * from t_ora_like where date2 like '16%';
id | str1 | date1 | date2 | num | str2
--------+-------+-----------------------------------+-------------+-----+------
123456 | test1 | 2022-09-26 16:39:20.000000 +08:00 | 16:39:20+08 | |
123457 | test2 | 2022-09-26 16:40:20.000000 +08:00 | 16:40:20+08 | |
223456 | test3 | 2022-09-26 16:41:20.000000 +08:00 | 16:41:20+08 | |
123458 | test4 | 2022-09-26 16:42:20.000000 +08:00 | 16:42:20+08 | |
(4 rows)
select * from t_ora_like where id like '123%';
id | str1 | date1 | date2 | num | str2
--------+-------+-----------------------------------+-------------+-----+------
123456 | test1 | 2022-09-26 16:39:20.000000 +08:00 | 16:39:20+08 | |
123457 | test2 | 2022-09-26 16:40:20.000000 +08:00 | 16:40:20+08 | |
123458 | test4 | 2022-09-26 16:42:20.000000 +08:00 | 16:42:20+08 | |
(3 rows)
select * from t_ora_like where id like null;
id | str1 | date1 | date2 | num | str2
----+------+-------+-------+-----+------
(0 rows)