Ответы:
% в SQL можно использовать в двух разных форматах. Если он используется в строке с, LIKE
то это подстановочный знак, например:
WHERE col_name like '%test%'
Это означало бы найти все, в col_name
чем есть слово «тест».
Но в этой конкретной операции символ% используется как оператор по модулю. Modulo (на калькуляторе, обычно обозначаемом как MODкнопка) возвращает остаток. Это может быть весьма полезным инструментом, если вы используете цикл for для отображения данных и хотите подсчитывать столбцы - недавно я использовал оператор по модулю при составлении веб-страницы. Мой был в 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, и каждые три элемента будут выводить «Три элемента», а каждые десять элементов - «Десять элементов», потому что любые другие числа будут возвращать значение, например:
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