English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans une base de données PostgreSQL, si nous devons obtenir des données contenant certains caractères, nous pouvons utiliser LIKE Phrase
Dans l'expression LIKE, ils sont généralement utilisés avec des caractères de remplacement, qui représentent des caractères arbitraires. Dans PostgreSQL, il existe principalement deux types de caractères de remplacement :
Pourcentage %
Tiret bas _
Si les deux types de caractères de remplacement ci-dessus ne sont pas utilisés, le résultat de la clause LIKE est le même que celui de l'égalité =.
Voici l'utilisation de l'opérateur LIKE avec le pourcentage % et le tiret bas _ La syntaxe générique pour obtenir des données à partir de la base de données :
SELECT FROM table_name WHERE column LIKE 'XXXX%'; ou SELECT FROM table_name WHERE column LIKE '%XXXX%'; ou SELECT FROM table_name WHERE column LIKE 'XXXX_'; ou SELECT FROM table_name WHERE column LIKE '_XXXX'; ou SELECT FROM table_name WHERE column LIKE '_XXXX_';
Vous pouvez spécifier n'importe quelle condition dans la clause WHERE.
Vous pouvez utiliser AND ou OR pour spécifier une ou plusieurs conditions.
XXXX Peut être n'importe quel chiffre ou caractère.
Voici quelques différences entre % et _ dans les expressions LIKE:
Exemple | Description |
---|---|
WHERE SALARY::text LIKE '200%" | trouver dans le champ SALARY avec 2des données commençant par '00'. |
WHERE SALARY::text LIKE '%200%" | Trouver les données contenant 2des données contenant des '00'. |
WHERE SALARY::text LIKE '_00%" | Trouver les données où le champ SALARY contient des '00' à la deuxième et troisième positions. |
WHERE SALARY::text LIKE '2 %%' | trouver dans le champ SALARY avec 2 La longueur du caractère en début est supérieure à 3 des données. |
WHERE SALARY::text LIKE '%2' | trouver dans le champ SALARY avec 2 terminant par |
WHERE SALARY::text LIKE '_2%3' | trouver dans le champ SALARY 2 à la deuxième position et commençant par 3 terminant par |
WHERE SALARY::text LIKE '2___3' | trouver dans le champ SALARY avec 2 commençant par3 terminant par et commençant par 5 données de longueur |
Dans PostgreSQL, la clause LIKE ne peut être utilisée que pour comparer des caractères, par conséquent, dans l'exemple ci-dessus, nous devons convertir le type de données entières en type de données chaîne.
Créer la table COMPANY (Télécharger le fichier SQL COMPANY ),contenu des données comme suit :
w3codeboxdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
Dans l'exemple suivant, nous allons trouver que l'AGE commence par 2 données commençant par :
w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE::text LIKE '2%';
Résultat obtenu suivant :
id | name | age | address | salary ----+-------+-----+-------------+-------- 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 24 | Houston | 20000 (7 rows)
Dans l'exemple suivant, nous allons trouver que le champ address contient - données de caractères :
w3codeboxdb=# SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%';
Résultat obtenu comme suit :
id | name | age | | address | | salary ----+------+-----+-------------------------------------------+-------- 4 | Mark | 25 | Rich-Mond | 65000 6 | Kim | 22 | South-Hall | 45000 (2 rows)