% en SQL peut être utilisé dans deux formats différents. S'il est utilisé dans une chaîne avec, LIKE
c'est un caractère générique, par exemple:
WHERE col_name like '%test%'
Cela signifierait trouver tout ce col_name
qui contient le mot «test».
Mais dans cette opération spécifique, le symbole% est utilisé comme opérateur modulo. Modulo (sur une calculatrice normalement représentée par un MODbouton) renvoie le reste. Cela peut être un outil très utile si vous utilisez une boucle for pour afficher des données et que vous souhaitez compter les colonnes - J'ai récemment utilisé l'opérateur modulo lors de la création d'une page Web. Le mien était en PHP, mais voici un exemple:
$count = 0 ;
$records = array () ;
for ( $a = 0 ; $a < 100 ; $a++ )
$records[$a] = $a ;
foreach ( $records as $record )
{
if ( $count % 3 == 0 )
echo '<p>Three items</p>' ;
if ( $count % 10 == 0 )
echo '<p>Ten items</p>' ;
echo '<p>'.$record.'</p>' ;
$count++ ;
}
Cela produirait essentiellement 1 à 100 et tous les trois éléments, il produirait "Trois éléments", et tous les dix éléments, il produirait "Dix éléments", car tout autre nombre renverrait une valeur, par exemple:
5 / 10 = 0.5 (5 % 10 = 5)
2 / 3 = 0.666... (2 % 3 = 2)
50 / 10 = 5.0 (50 % 10 = 0)
9 / 3 = 3.0 (9 % 3 = 0)
select 5 / 10 ;
donnera0
en SQL, pas0.5
Les autres réponses sont correctes. C'est l'opérateur modulo, qui renvoie le reste de la division.
Mais je pense qu'il pourrait être utile d'ajouter POURQUOI c'est une opération pertinente et POURQUOI cela pourrait être utile parfois.
Le
X % 2
est le plus utilisé car il renvoie si le nombre est pair ou impair.Imaginez que vous souhaitez sélectionner toutes les colonnes avec des nombres pairs, vous pouvez faire:
Si vous souhaitez sélectionner toutes les colonnes avec des nombres impairs, vous pouvez faire:
D'autres cas d'utilisation peuvent survenir, par exemple, vous souhaitez filtrer toutes les colonnes par leur unité, vous pouvez l'utiliser pour obtenir tous les nombres qui ont zéro dans leurs unités:
la source