在 INSERT(str, Pos, len, newstr) 函数中,如果 'Pos' 超出字符串长度,结果会是什么?


如果插入位置不在字符串长度范围内,MySQL INSERT() 函数将不会执行任何插入操作。例如,如果传递负值或0值,或者值超出原始字符串字符总数2个字符以上,则可以认为 'pos' 超出字符串长度范围。以下示例可以帮助理解:

示例

以下查询将不会执行任何插入操作,因为 'pos' 超出字符串长度范围(负值)。

mysql> Select INSERT('Tutorialspoint',-1,4,'.com');
+--------------------------------------+
| INSERT('Tutorialspoint',-1,4,'.com') |
+--------------------------------------+
| Tutorialspoint                       |
+--------------------------------------+
1 row in set (0.00 sec)

以下查询将不会执行任何插入操作,因为 'pos' 超出字符串长度范围(0)。

mysql> Select INSERT('Tutorialspoint',0,4,'.com');
+-------------------------------------+
| INSERT('Tutorialspoint',0,4,'.com') |
+-------------------------------------+
| Tutorialspoint                      |
+-------------------------------------+
1 row in set (0.00 sec)

以下查询将不会执行任何插入操作,因为 'pos' 超出字符串长度范围(超出原始字符串字符数2个字符)。在以下示例中,原始字符串 'Tutorialspoint' 包含14个字符,而指定的位置值为16,因此不会发生插入。

mysql> Select INSERT('Tutorialspoint',16,4,'.com');
+--------------------------------------+
| INSERT('Tutorialspoint',16,4,'.com') |
+--------------------------------------+
| Tutorialspoint                       |
+--------------------------------------+
1 row in set (0.00 sec)

更新于:2020年6月22日

145 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.