« MySQL/Opérateurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 278 :
* <code>%</code> : n'importe quel séquence de caractères (par exemple zéro ou mille).
 
A noter que dans les expressions <code>LIKE</code>, <code>\</code> est aussi le caractère d'échappement pour <code>'</code>, et son comportement ne peut pas être changé par la clause <code>ESCAPE</code>. Mais il neIl peut pasaussi s'échapper d'autres caractères, mais pas lui-même.
 
Utilisations courantes de <code>LIKE</code> :
Ligne 284 :
* Trouver tous les titres commençant par "hello" :
<source lang=sql>
SELECT * FROM articles WHERE titletitre LIKE 'hello%'
</source>
 
* Trouver tous les titres finissant par "world" :
<source lang=sql>
SELECT * FROM articles WHERE titletitre LIKE '%world'
</source>
 
* Trouver tous les titres contenant la chaine "gnu" :
<source lang=sql>
SELECT * FROM articles WHERE titletitre LIKE '%gnu%'
</source>
 
Ces caractères spéciaux peuvent être contenus dans le pattern lui-même. Par exemple, pour rechercher les symboles <code>_</code> ou <code>%</code> dans la base :
These special chars may be contained in the pattern itself: for example, you could need to search for the "_" character. In that case, you need to "escape" the char:
<source lang=sql>
SELECT * FROM articles WHERE titletitre LIKE '\_%' -- titles starting with _
SELECT * FROM articles WHERE titletitre LIKE '\%%' -- titles starting with %
</source>
<code>/</code> peut-être une alternative à <code>\</code> si on le précise :
Sometimes, you may want to use an escape character different from "\". For example, you could use "/":
<source lang=sql>
SELECT * FROM articles WHERE titletitre LIKE '/_%' ESCAPE '/'
</source>
 
Quand on utilise l'opérateur <code>=</code>, les espaces des chaines sont ignorés, mais avec <code>LIKE</code> ils sont reconnus :
When you use = operator, trailing spaces are ignored. When you use LIKE, they are taken into account.
<source lang=sql>
SELECT 'word' = 'word ' -- returns 1
SELECT 'word' LIKE 'word ' -- returns 0
</source>
 
 
<code>LIKE</code> fonctionne aussi avec les nombres :
LIKE also works with numbers.
<source lang=sql>
SELECT 123 LIKE '%2%' -- returns 1
</source>
 
IfPour youtester wantsi toun checkpattern ifne afonctionne patternpas doesnalors qu'til matchdevrait, you can useutiliser <code>NOT LIKE</code> :
<source lang=sql>
SELECT 'a' NOT LIKE 'b' -- returns 1
</source>