我需要使用LIMIT
获取特定列和特定行数的校验和。
SELECT SUM(CRC32(column)) FROM table LIMIT 0, 100;
但是,返回的值是整个表的校验和。为什么会这样?如何使用LIMIT来获取仅特定行数的校验和?
以下作品:
SELECT SUM(CRC32(column)) FROM table WHERE id > 0 AND id < 101;
但我不想使用此方法,因为auto_increment值可能会跳转。
答案 0 :(得分:1)
在聚合函数之后应用为什么会这样?
LIMIT
。
在没有GROUP BY
的情况下使用时,SUM
会聚合整个表格,只留下一条记录,该记录属于LIMIT
。
使用此:
SELECT SUM(CRC32(column))
FROM (
SELECT column
FROM mytable
ORDER BY
id
LIMIT 100
) q
答案 1 :(得分:0)
你可以做到
SELECT SUM(CRC32(column)) FROM
(SELECT column FROM table LIMIT 0, 100) AS tmp;