Відповіді:
Це оператор Modulo .
Повертає решту одного числа, поділеного на інше.
% у SQL може використовуватися у двох різних форматах. Якщо він використовується в рядку з, LIKE
то це, наприклад, макіяж:
WHERE col_name like '%test%'
Це означало б знайти все, в col_name
чому є слово "тест".
Але в цій конкретній операції символ% використовується як оператор модуля. Modulo (на калькуляторі, який зазвичай відображається як MODкнопка) повертає решту. Це може бути досить корисним інструментом, якщо ви використовуєте цикл для відображення даних і хочете підраховувати стовпці - я нещодавно використовував оператор модуля при складанні веб-сторінки. Моя була в 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