Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chỉ chọn và trả về Checksum (không phải Table) từ bảng checksum trong mysql

Bạn có thể thực hiện theo cột hoặc tổng các cột. Dưới đây là bài kiểm tra trên bàn của tôi.

SELECT sum(crc32(email)) as crc from users;
+-------------+
| crc         |
+-------------+
| 10679459550 |
+-------------+


select sum(crc32(concat(user_id,first_name,last_name,email,reportingManager))) as crc from users;
+------------+
| crc        |
+------------+
| 7196315383 |
+------------+

Chỉnh sửa

Trong một thủ tục được lưu trữ được chuyển một tên cơ sở dữ liệu và một tên bảng, bên dưới sẽ trả về crc. Nó chuyển đến INFORMATION_SCHEMA đặc biệt db để truy xuất tên cột cho bạn và sử dụng tất cả các cột và giá trị đó để tạo tổng kiểm tra.

Thủ tục lưu trữ:

drop procedure if exists getTableCRC32;
DELIMITER $$
create procedure getTableCRC32
(   dbname varchar(80),
    tableName varchar(80)
)
BEGIN
    set @sql1="select GROUP_CONCAT(`column_name` SEPARATOR ',') into @colNames";
    set @sql1=concat(@sql1," FROM `INFORMATION_SCHEMA`.`COLUMNS`");
    set @sql1=concat(@sql1," WHERE `TABLE_SCHEMA`='",dbName,"'");
    set @sql1=concat(@sql1," AND `TABLE_NAME`='",tableName,"'");
    -- select @sql1;
    PREPARE stmt1 FROM @sql1;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
    -- select @colNames;
    set @sql2=concat( 'select sum(crc32(concat(',  @colNames, '))) as crc from ',tableName);
    -- select @sql2;
    PREPARE stmt2 FROM @sql2;
    EXECUTE stmt2;
    DEALLOCATE PREPARE stmt2;
END
$$
DELIMITER ;

Kiểm tra nó:

call getTableCRC32('so_gibberish','users');
+------------+
| crc        |
+------------+
| 7196315383 |
+------------+
call getTableCRC32('so_gibberish','fish');
+------------+
| crc        |
+------------+
| 3273020843 |
+------------+

Trang hướng dẫn sử dụng crc32



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lấy id được chèn lần cuối từ bảng MySQL

  2. Truy vấn chọn chuỗi kết thúc bằng ký tự nhất định

  3. Hibernate + MySQL:Cách đặt mã hóa utf-8 cho cơ sở dữ liệu và bảng

  4. GROUP_CONCAT tương đương ở Django

  5. Dữ liệu phân cấp trong MySql