0

を使用して、特定の列と特定の行数のチェックサムを取得する必要があります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 値がジャンプする可能性があるため、この方法は使用したくありません。

4

2 に答える 2

1

なぜそれが起こるのですか?

LIMIT集計関数の後に適用されます。

なしGROUP BYで使用すると、SUMはテーブル全体を集約し、 に該当するレコードを 1 つだけ残しますLIMIT

これを使って:

SELECT  SUM(CRC32(column))
FROM    (
        SELECT  column
        FROM    mytable
        ORDER BY
                id
        LIMIT   100
        ) q
于 2013-04-17T21:54:57.457 に答える
0

できるよ

  SELECT SUM(CRC32(column)) FROM 
    (SELECT column FROM table LIMIT 0, 100) AS tmp;
于 2013-04-17T21:55:29.247 に答える