2013-04-17 86 views
0

我需要使用LIMIT來獲取特定列和特定行數的校驗和。SELECT SUM(CRC32(列))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

等一下,你想在這裏做什麼?將CRC32值加在一起沒有任何意義。 – duskwuff

+0

即時驗證2個表格 – user2103849

回答

1

爲什麼會發生這種情況?

LIMIT在集合函數之後被應用。

當在沒有GROUP BY,SUM的情況下使用時,整個表格只會留下一條記錄,其中包含LIMIT

使用此:

SELECT SUM(CRC32(column)) 
FROM (
     SELECT column 
     FROM mytable 
     ORDER BY 
       id 
     LIMIT 100 
     ) q 
0

你可以做

SELECT SUM(CRC32(column)) FROM 
    (SELECT column FROM table LIMIT 0, 100) AS tmp;