如果 MySQL INSERT() 函数中的插入位置超出范围,会发生什么情况?

mysqlmysqli database更新于 2025/5/20 17:48:17

如果插入位置超出范围,MySQL INSERT() 函数将不执行插入。当我们传递负值或 0(零)值,或者值超出原始字符串中字符总数的值 2 时,插入位置可能超出范围。可以借助以下示例来理解 −

示例

以下查询将不执行插入,因为插入位置超出范围,即为负值。

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)

相关文章


有用资源