在函数INSERT(str,Pos,len,newstr)中,如果“ Pos”不在字符串长度之内,结果将是什么?

INSERT()如果插入位置不在字符串的长度内,则MySQL函数不执行插入操作。在某些情况下,例如当我们可以说'pos'不在字符串的长度内时,我们传递一个负值或0(零)值,或者该值比原始字符串中的字符总数超出2个值。通过以下示例可以理解-

示例

下面的查询将不执行任何插入操作,因为'pos'不在字符串的长度内,即为负值。

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

下面的查询将不执行任何插入操作,因为'pos'不在字符串的长度内,即0(零)。

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

下面的查询将不执行插入操作,因为'pos'不在字符串的长度内,即比原始字符串中的多个字符的值超出2。在下面的示例中,原始字符串'Nhooo'具有14个字符,我们给出的位置值为16,因此不会发生插入。

mysql> Select INSERT('Nhooo',16,4,'.com');
+--------------------------------------+
| INSERT('Nhooo',16,4,'.com') |
+--------------------------------------+
| Nhooo                       |
+--------------------------------------+
1 row in set (0.00 sec)
猜你喜欢