如果MySQL INSERT()函数中插入位置超出范围会怎么样?
如果插入的位置超出范围,MySQL INSERT()函数将不进行插入。当传递一个负值或0(零)值或者传递值超出原始字符串中字符总数的2时,插入位置可能超出范围。以下示例可帮助理解。
阅读更多:MySQL 教程
示例
以下查询将不执行插入,因为插入位置超出范围即为负值。
mysql> Select INSERT('Virat', -1,5,'Kohli');
+-------------------------------+
| INSERT('Virat', -1,5,'Kohli') |
+-------------------------------+
| Virat |
+-------------------------------+
1 row in set (0.00 sec)
以下查询将不执行插入,因为插入位置超出范围即为0(零)。
mysql> Select INSERT('Virat', 0,5,'Kohli');
+------------------------------+
| INSERT('Virat', 0,5,'Kohli') |
+------------------------------+
| Virat |
+------------------------------+
1 row in set (0.00 sec)
以下查询将不执行插入,因为插入位置超出范围即为超过原始字符串中字符总数的2。在下面的示例中,原始字符串’Virat’有5个字符,我们给出的位置值为7,因此不会进行插入操作。
mysql> Select INSERT('Virat', 7,5,'Kohli');
+------------------------------+
| INSERT('Virat', 7,5,'Kohli') |
+------------------------------+
| Virat |
+------------------------------+
1 row in set (0.00 sec)
极客教程