La fonction MySQL INSERT() n'effectue pas l'opération d'insertion lorsque la position d'insertion n'est pas dans la plage de longueur de chaîne. Il y a certains cas, comme lorsque nous transmettons une valeur négative ou une valeur 0 (zéro), ou lorsque la valeur est supérieure à 2 valeurs du nombre total de caractères dans la chaîne d'origine, nous pouvons dire que 'pos' n'est pas dans la longueur de la chaîne. Cela peut être compris à travers l'exemple suivant :
La requête ci-dessous n'effectuera pas l'opération d'insertion car 'pos' n'est pas dans la plage de longueur de chaîne, c'est-à-dire qu'il s'agit d'une valeur négative.
mysql> Select INSERT('Tutorialspoint',-1,4,'.com'); +--------------------------------------+ | INSERT('Tutorialspoint',-1,4,'.com') | +--------------------------------------+ | Tutorialspoint | +--------------------------------------+ 1 row in set (0.00 sec)
La requête ci-dessous n'effectuera pas l'insertion car 'pos' n'est pas compris dans la longueur de la chaîne, qui est 0 (zéro).
mysql> Select INSERT('Tutorialspoint',0,4,'.com'); +-------------------------------------+ | INSERT('Tutorialspoint',0,4,'.com') | +-------------------------------------+ | Tutorialspoint | +-------------------------------------+ 1 row in set (0.00 sec)
La requête suivante ne fera pas d'insertion car 'pos' n'est pas dans la longueur de la chaîne, c'est-à-dire une valeur de 2 de plus que le nombre de caractères dans la chaîne d'origine. Dans l'exemple ci-dessous, la chaîne d'origine « Tutorialspoint » comporte 14 caractères et nous avons donné la valeur de position 16, donc aucune insertion n'aura lieu.
mysql> Select INSERT('Tutorialspoint',16,4,'.com'); +--------------------------------------+ | INSERT('Tutorialspoint',16,4,'.com') | +--------------------------------------+ | Tutorialspoint | +--------------------------------------+ 1 row in set (0.00 sec)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!