在 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

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告