% in SQL kann in zwei verschiedenen Formaten verwendet werden. Wenn es in einer Zeichenfolge mit verwendet wird, LIKE
ist es ein Platzhalter, zum Beispiel:
WHERE col_name like '%test%'
Das würde bedeuten, alles zu finden, in col_name
dem das Wort "test" vorkommt.
In dieser speziellen Operation wird das% -Symbol jedoch als Modulo-Operator verwendet. Modulo (auf einem Taschenrechner, der normalerweise als MODSchaltfläche angezeigt wird ) gibt den Rest zurück. Es kann sehr nützlich sein, wenn Sie eine for-Schleife zum Anzeigen von Daten verwenden und Spalten zählen möchten. Ich habe kürzlich beim Erstellen einer Webseite den Modulo-Operator verwendet. Meins war in PHP, aber dies ist ein Beispiel:
$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++ ;
}
Dies würde grundsätzlich 1 - 100 und alle drei Elemente "Drei Elemente" und alle zehn Elemente "Zehn Elemente" ausgeben, da alle anderen Zahlen einen Wert zurückgeben würden, zB:
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 ;
wird0
in SQL geben, nicht0.5
Die anderen Antworten sind richtig. Es ist der Modulo-Operator, der den Rest der Division zurückgibt.
Aber ich denke, es könnte hilfreich sein, WARUM es eine relevante Operation ist und WARUM es manchmal nützlich sein könnte.
Das
X % 2
ist das am häufigsten verwendete, da es zurückgibt, wenn die Zahl gerade oder ungerade ist.Stellen Sie sich vor, Sie möchten alle Spalten mit geraden Zahlen auswählen. Sie haben folgende Möglichkeiten:
Wenn Sie alle Spalten mit ungeraden Zahlen auswählen möchten, haben Sie folgende Möglichkeiten:
Es können auch andere Anwendungsfälle auftreten. Wenn Sie beispielsweise alle Spalten nach ihrer Einheit filtern möchten, können Sie dies verwenden, um alle Zahlen zu ermitteln, deren Einheiten Null enthalten:
quelle