Maison >base de données >tutoriel mysql >Introduction détaillée aux fonctions de caractères MySQL
Concaténation de caractères CONCAT() et CONCAT_WS()
mysql> SELECT CONCAT('mysql','5.6'); +-----------------------+ | CONCAT('mysql','5.6') | +-----------------------+ | mysql5.6 | +-----------------------+ 1 row in set (0.09 sec) mysql> SELECT CONCAT('mysql','-','5.6'); +---------------------------+ | CONCAT('mysql','-','5.6') | +---------------------------+ | mysql-5.6 | +---------------------------+ 1 row in set (0.00 sec)
Par exemple : concaténer le prénom et le nom de l'utilisateur en une chaîne
mysql> SELECT * FROM tdb_test; +----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | A | B | | 2 | Jack | Bob | | 3 | tom% | 123 | +----+------------+-----------+ 3 rows in set (0.00 sec) mysql> SELECT CONCAT(first_name,last_name) AS fullname FROM tdb_test; +----------+ | fullname | +----------+ | AB | | JackBob | | tom%123 | +----------+ 3 rows in set (0.00 sec)
CONCAT_WS( ) est le délimiteur, suivi des caractères à connecter
mysql> SELECT CONCAT_WS('|','A','B','C'); +----------------------------+ | CONCAT_WS('|','A','B','C') | +----------------------------+ | A|B|C | +----------------------------+ 1 row in set (0.00 sec) mysql> SELECT CONCAT_WS('-','mysql','5.6'); +------------------------------+ | CONCAT_WS('-','mysql','5.6') | +------------------------------+ | mysql-5.6 | +------------------------------+ 1 row in set (0.00 sec)
FORMAT() formatage des nombres
mysql> SELECT FORMAT(12560.75,1); +--------------------+ | FORMAT(12560.75,1) | +--------------------+ | 12,560.8 | +--------------------+ 1 row in set (0.01 sec) LOWER()和 UPPER() mysql> SELECT LOWER('MySql'); +----------------+ | LOWER('MySql') | +----------------+ | mysql | +----------------+ 1 row in set (0.00 sec) mysql> SELECT UPPER('MySql'); +----------------+ | UPPER('MySql') | +----------------+ | MYSQL | +----------------+ 1 row in set (0.00 sec)
LEFT() et RIGHT()
ont respectivement deux paramètres, le premier est la chaîne utilisée et le second est d'obtenir le nombre de
, par exemple, obtenez les deux premiers chiffres de MySQL
mysql> SELECT LEFT('MySQL',2); +-----------------+ | LEFT('MySQL',2) | +-----------------+ | My | +-----------------+ 1 row in set (0.00 sec)
, par exemple, obtenez les deux derniers chiffres de MySQL
mysql> SELECT RIGHT('MySQL',2); +------------------+ | RIGHT('MySQL',2) | +------------------+ | QL | +------------------+ 1 row in set (0.00 sec)
LENGTH obtient la longueur de la chaîne
mysql> SELECT LENGTH('MySQL'); +-----------------+ | LENGTH('MySQL') | +-----------------+ | 5 | +-----------------+ 1 row in set (0.02 sec)
LTRIM,RTRIM,TRIM
Par exemple, utiliser directement SELECT TRIM(' mysql ');
supprimera les espaces avant et après mysql. LTRIM supprimera uniquement les espaces de gauche et RTRIM supprimera uniquement les espaces de gauche. espaces à droite.
Autre utilisation : utilisez TRIM() pour supprimer des caractères spécifiques sur les côtés gauche et droit.
Par exemple :
mysql> SELECT TRIM(LEADING '?' FROM '??MySQL???'); +-------------------------------------+ | TRIM(LEADING '?' FROM '??MySQL???') | +-------------------------------------+ | MySQL??? | +-------------------------------------+ 1 row in set (0.02 sec) mysql> SELECT TRIM(TRAILING '?' FROM '??MySQL???'); +--------------------------------------+ | TRIM(TRAILING '?' FROM '??MySQL???') | +--------------------------------------+ | ??MySQL | +--------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT TRIM(BOTH '?' FROM '??MySQL???'); +----------------------------------+ | TRIM(BOTH '?' FROM '??MySQL???') | +----------------------------------+ | MySQL | +----------------------------------+ 1 row in set (0.01 sec)
Remarque : TRIM() ne peut supprimer que les caractères de début et de suite, mais pas les caractères du milieu, tels que TRIM('My SQL'); ne peut pas être supprimé Perdre.
Remplacement de chaîne REPLACE()
Par exemple, remplacez le ?? dans ??Mon??SQL??? Remplacez-le par une chaîne vide
mysql> SELECT REPLACE('??My??SQL???','?',''); +--------------------------------+ | REPLACE('??My??SQL???','?','') | +--------------------------------+ | MySQL | +--------------------------------+ 1 row in set (0.00 sec)
SUBSTRING() pour intercepter les paramètres contenus dans
, intercepter à partir du nombre de Plusieurs.
mysql> SELECT SUBSTRING('MySQL',1,2); +------------------------+ | SUBSTRING('MySQL',1,2) | +------------------------+ | My | +------------------------+ 1 row in set (0.00 sec)
Il convient de noter que, contrairement aux langages de programmation, le premier bit est 1 et non 0.
Si vous ne partez que du numéro et n'en interceptez pas quelques-uns, il sera intercepté jusqu'à la fin.
mysql> SELECT SUBSTRING('MySQL',3); +----------------------+ | SUBSTRING('MySQL',3) | +----------------------+ | SQL | +----------------------+ 1 row in set (0.00 sec)
La position peut également être négative (en comptant à rebours)
mysql> SELECT SUBSTRING('MySQL',-1); +-----------------------+ | SUBSTRING('MySQL',-1) | +-----------------------+ | L | +-----------------------+ 1 row in set (0.04 sec)
Remarque, seul Le la position de départ peut avoir une valeur négative, mais la longueur d'interception ne peut pas avoir une valeur négative.
Correspondance de modèle LIKE (couramment utilisée dans les requêtes)
mysql> SELECT 'MySQL' LIKE 'M%'; +-------------------+ | 'MySQL' LIKE 'M%' | +-------------------+ | 1 | +-------------------+ 1 row in set (0.00 sec)
% fait référence à un ou plusieurs chiffres
mysql> SELECT * FROM tdb_test; +----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | A | B | | 2 | Jack | Bob | | 3 | tom% | 123 | +----+------------+-----------+ 3 rows in set (0.00 sec)
Par exemple, requête, utilisateurs dont les noms contiennent o
mysql> SELECT * FROM tdb_test WHERE first_name LIKE '%o%'; +----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 3 | tom% | 123 | +----+------------+-----------+ 1 row in set (0.00 sec)
Par exemple, requête, utilisateurs dont les noms contiennent % d'utilisateurs
mysql> SELECT * FROM tdb_test WHERE first_name LIKE '%%%'; +----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | A | B | | 2 | Jack | Bob | | 3 | tom% | 123 | +----+------------+-----------+ 3 rows in set (0.00 sec)
发现显示的是所有查询结果。因为mysql会认为上述的%都为通配符。正确操作如下
mysql> SELECT * FROM tdb_test WHERE first_name LIKE '%1%%' ESCAPE '1'; +----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 3 | tom% | 123 | +----+------------+-----------+ 1 row in set (0.00 sec)
注:%:任意个字符.
_:任意一个字符。
以上就是MySQL字符函数的详细介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!