REPLACE(chaine, ancCaract, nouvCaract) : tous les caractères (ou sous-chaînes) ancCaract seront
remplacés par nouvCaract.
Code : SQL
SELECT INSERT('texte', 3, 2, 'blabla') AS fct_INSERT,
REPLACE('texte', 'e', 'a') AS fct_REPLACE,
REPLACE('texte', 'ex', 'ou') AS fct_REPLACE2;
fct_INSERT fct_REPLACE fct_REPLACE2
teblablae
taxta
toute
Concaténation
Concaténer deux chaînes de caractères signifie les mettre bout à bout pour n'en faire qu'une seule. Deux fonctions scalaires
permettent la concaténation : CONCAT() et CONCAT_WS(). Ces deux fonctions permettent de concaténer autant de chaînes
que vous voulez, il suffit de toutes les passer en paramètres. Par conséquent, ces deux fonctions n'ont pas un nombre de
paramètres défini.
CONCAT(chaine1, chaine2,…) : renvoie simplement une chaîne de caractères, résultat de la concaténation de
toutes les chaînes passées en paramètres.
CONCAT_WS(separateur, chaine1, chaine2) : même chose que CONCAT(), sauf que la première chaîne
passée sera utilisée comme séparateur, donc placée entre chacune des autres chaînes passées en paramètres.
Code : SQL
SELECT CONCAT('My', 'SQL', '!'), CONCAT_WS('-', 'My', 'SQL', '!');
CONCAT('My', 'SQL', '!') CONCAT_WS('-', 'My', 'SQL', '!')
MySQL!
My-SQL-!
FIELD(), une fonction bien utile pour le tri
La fonction FIELD(rech, chaine1, chaine2, chaine3,…) recherche le premier argument (rech) parmi les
arguments suivants (chaine1, chaine2, chaine3,…) et retourne l'index auquel rech est trouvée (1 si rech = chaine1, 2 si rech =
chaine2,…). Si rech n'est pas trouvée parmi les arguments, 0 est renvoyé.
Code : SQL
SELECT FIELD('Bonjour', 'Bonjour !', 'Au revoir', 'Bonjour', 'Au
revoir !') AS field_bonjour;
field_bonjour
3
Par conséquent, FIELD peut être utilisée pour définir un ordre arbitraire dans une clause ORDER BY.
Exemple : ordonnons les espèces selon un ordre arbitraire. La fonction FIELD() dans la clause SELECT n'est là que pour
illustrer la façon dont ce tri fonctionne.
Partie 3 : Fonctions : nombres, chaînes et agrégats
168/414
www.openclassrooms.com
Précédent

- 168/413

Suivant