mysql - MySQL 中 SELECT 结果的校验和

标签 mysql select checksum

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

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

哪个有效,但这个无效:

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

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

最佳答案

问题是 CONCATSUM 在此格式中不兼容。

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

SUM 是一个聚合函数,设计用于在完整结果集上运行。

CRC32CONCAT 属于同一类函数。

因此,您的函数以一种不能很好地协同工作的方式嵌套。

你可以试试:

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;

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

关于mysql - MySQL 中 SELECT 结果的校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955776/

相关文章:

mysql - 我怎样才能找到一个列是否在 mysql 中是 auto_increment?

php - 在 SQL 上计算一个类别中的不同项目

mysql - Snow Leopard 上的 Ruby MySQL gem "couldn' t 创建数据库“错误

css - 添加类以选择标签

javascript - 从外部 JSON 文件生成选择列表

php - 作为 cronjob 运行脚本时为 "MySQL server has gone away"

php - 如何从 csv 字符串创建数组?

Node.js & Crypto : Store the current state of a crypto. createHash 实例稍后重用

java - 获取字节数组的 CRC 校验和并将其添加到该字节数组

c++ - 如何保护 DLL 功能,或获取导入的位置?