Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel est l'équivalent MySQL de STUFF() dans SQL Server ?

Si vous connaissez SQL Server, vous savez peut-être que vous pouvez utiliser T-SQL STUFF() fonction pour insérer une chaîne dans une chaîne. Il s'avère que MySQL a une fonction similaire, mais avec un nom différent.

INSERT() de MySQL La fonction fait essentiellement la même chose que le T-SQL STUFF() fonctionne.

À l'exception de quelques différences mineures (voir ci-dessous), les deux fonctions fonctionnent exactement de la même manière.

Syntaxe

Voici la syntaxe officielle de chacune de ces fonctions.

T-SQL - La fonction STUFF()

STUFF ( character_expression , start , length , replaceWith_expression )

MySQL – La fonction INSERT()

INSERT(str,pos,len,newstr)

Bien que chacune de ces définitions utilise une terminologie différente, elles font essentiellement la même chose.

Exemples

Voici un exemple de chacune de ces fonctions en action.

T-SQL - La fonction STUFF()

SELECT STUFF('Cats and dogs', 6, 3, 'like');

Résultat :

Cats like dogs

MySQL – La fonction INSERT()

SELECT INSERT('Cats and dogs', 6, 3, 'like');

Résultat :

Cats like dogs

Comme vous pouvez le voir, la seule différence est le nom de la fonction. Nous pouvons porter l'un à l'autre simplement en changeant le nom de la fonction.

Différences entre STUFF() et INSERT()

Il existe quelques différences dans le fonctionnement de ces fonctions. En particulier, les deux principales différences sont la façon dont ils traitent :

  • Positions hors plage
  • Valeurs NULL

Ces différences sont expliquées ci-dessous.

Positions hors plage

Si vous essayez d'insérer à une position qui est en dehors de la longueur de la chaîne d'origine, INSERT() de MySQL fonction renverra la chaîne d'origine. D'autre part, STUFF() de T-SQL la fonction renverra NULL .

T-SQL - La fonction STUFF()

SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');

Résultat :

NULL

MySQL – La fonction INSERT()

SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');

Résultat :

Cats and dogs

Valeurs NULLES

Ces deux fonctions diffèrent également dans la façon dont elles traitent les valeurs NULL que vous essayez d'insérer.

T-SQL - La fonction STUFF()

SELECT STUFF('Cats and dogs', 6, 3, NULL);

Résultat :

Cats dogs

T-SQL - La fonction INSERT()

SELECT INSERT('Cats and dogs', 6, 3, NULL);

Résultat :

NULL