回答:
SQLの%は、2つの異なる形式で使用できます。それが文字列で使用されている場合LIKE
、ワイルドカードです、たとえば:
WHERE col_name like '%test%'
col_name
これは、「テスト」という単語が含まれているすべてのものを見つけることを意味します。
しかし、この特定の操作では、%記号がモジュロ演算子として使用されています。モジュロ(通常はMODボタンとして表示される計算機上)は剰余を返します。forループを使用してデータを表示し、列をカウントする場合、これは非常に便利なツールです。最近、Webページを作成するときにモジュロ演算子を使用しました。私のものはPHPでしたが、これは例です:
$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++ ;
}
これは基本的に1〜100を出力し、3アイテムごとに「3アイテム」を出力し、10アイテムごとに「10アイテム」を出力します。
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 ;
なります0
、SQLではない0.5
他の答えは正しいです。除算の剰余を返すのはモジュロ演算子です。
しかし、なぜそれが関連する操作であり、なぜそれが時々役立つのかを追加すると役立つと思います。
これX % 2
は、数値が偶数か奇数かを返すため、最も使用されるものです。
偶数のすべての列を選択したいと想像してください。
SELECT * FROM table WHERE column % 2 = 0
奇数のすべての列を選択する場合は、次を実行できます。
SELECT * FROM table WHERE column % 2 = 1
他のユースケースが発生する可能性があります。たとえば、すべての列をユニットでフィルタリングする場合、これを使用してユニットにゼロがあるすべての数値を取得できます。
SELECT * FROM table WHERE column % 10 = 0