MYSQL中子字符串的使用

MYSQL中子字符串的使用,mysql,Mysql,我试图了解mysql中子字符串查询的用法 这是我尝试过的问题 select substr('Beautiful',-5) from dual; //output tiful 当我们给出一个负值时,计数是从最后一个字符开始的 同时当我给出以下查询时 select substr('Beautiful',-5,2) from dual; // outputs ti select substr('Beautiful',-5,-2) from dual; // outputs <blank>

我试图了解mysql中子字符串查询的用法 这是我尝试过的问题

select substr('Beautiful',-5) from dual; //output tiful
当我们给出一个负值时,计数是从最后一个字符开始的

同时当我给出以下查询时

select substr('Beautiful',-5,2) from dual; // outputs ti
select substr('Beautiful',-5,-2) from dual; // outputs <blank>
当我们给出负值时,是否从最后一个字符开始计数,并显示值5和6,即(t&i)

当我执行以下查询时,问题就出现了

select substr('Beautiful',-5,2) from dual; // outputs ti
select substr('Beautiful',-5,-2) from dual; // outputs <blank>
从dual中选择substr('beautifuly'、-5、-2);//输出

我实际上期望输出为“ut”;谁能解释一下这里发生了什么,我对上述两个查询的评估正确吗?

假设您使用的是MySQL 5.x,对于函数
子字符串(str,pos,len)
,第三个参数
len
是一个非负整数>0。任何其他值都将导致空字符串

如果
len
小于1,则结果为空字符串


参考:

那么,当我给“pos”字段一个负值时,它是从最后一个字符开始计算的吗?