【问题标题】:Checksum of SELECT results in MySQLMySQL中SELECT结果的校验和
【发布时间】:2011-05-10 20:02:51
【问题描述】:

尝试获取 SELECT 语句结果的校验和,尝试了这个

SELECT sum(crc32(column_one))
FROM database.table;

哪个有效,但这不起作用:

SELECT CONCAT(sum(crc32(column_one)),sum(crc32(column_two)))
FROM database.table;

接受建议,主要思想是从 SELECT 语句中获取行和列结果的 SUM 的有效校验和。

【问题讨论】:

  • “没有工作”是什么意思?错误信息?出乎意料的结果?服务器崩溃了?

标签: mysql select checksum


【解决方案1】:

问题是CONCAT和SUM在这种格式下不兼容。

CONCAT 旨在根据该行定义的参数在结果集中每行运行一次。

SUM 是一个聚合函数,旨在在完整的结果集上运行。

CRC32 与CONCAT 属于同一类函数。

所以,你有嵌套的函数,不能很好地组合在一起。

你可以试试:

SELECT CONCAT(
    (SELECT sum(crc32(column_one)) FROM database.table),
    (SELECT sum(crc32(column_two)) FROM database.table)
);

或

SELECT sum(crc32(column_one)), sum(crc32(column_two))
FROM database.table;

并将它们与您的客户端语言连接起来。

【讨论】:

猜你喜欢
  • 2016-05-13
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
相关资源
最近更新 更多