MySQL 在函数INSERT(str, Pos, len, newstr)中,如果’Pos’不在字符串长度内,结果会是什么
如果插入位置不在字符串长度内,MySQL INSERT()函数将不执行插入。有一些情况需要注意,比如我们传递负数或0(零)值,或者在原始字符串中当值超过总字符数的值时,我们可以说‘pos’不在字符串的长度内。可以通过以下示例进行理解-
阅读更多:MySQL 教程
例子
下面的查询将不执行插入,因为‘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)