项目背景
去O路上,遇到的函数使用问题
substr使用区别
oracle substr
select substr(‘aaaa’,0,4)
mysql substr
select substr(‘aaaa’,0,4)
postgresql substr
select substr(‘aaaa’,0,4)
请问在两个数据库中,上述两个函数的执行结果是一样的吗?
测试结果
oracle
mysql
mysql> select substr(‘aaaaa’,0,4);
±--------------------+
| substr(‘aaaaa’,0,4) |
±--------------------+
| |
±--------------------+
1 row in set (0.00 sec)
扫描二维码关注公众号,回复:
11887202 查看本文章
mysql> select substr(‘aaaaa’,1,4);
±--------------------+
| substr(‘aaaaa’,1,4) |
±--------------------+
| aaaa |
±--------------------+
1 row in set (0.00 sec)
postgresql
postgres=# select substr(‘aaaaa’,0,4);
aaa
postgres=# select substr(‘aaaaa’,1,4);
aaaa
postgres=# select substr(‘aaaaa’,4);
aa
总结
1、oracle中substr函数的语法兼容性更好
2、mysql中substr函数截取是从1开始才有值
3、postgresql substr函数默认从0开始截取