Answers:
它是Modulo运算符。
返回一个数字的余数除以另一个。
SQL中的%可以两种不同的格式使用。如果与一起用于字符串LIKE
,则为通配符,例如:
WHERE col_name like '%test%'
那将意味着找到col_name
其中包含“测试”一词的所有内容。
但是在此特定操作中,%符号被用作模运算符。模数(在通常显示为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