Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में प्रत्येक रो के लिए हैश वैल्यू कैसे प्राप्त करें?


प्रत्येक रो का हैश वैल्यू प्राप्त करने के लिए MySQL के MD5() फ़ंक्शन का उपयोग करें।

सिंटैक्स

SELECT MD5(CONCAT(yourColumnName1, yourColumnName2, yourColumnName3, ... N)) AS anyVariableName 
FROM yourTableName;

उदाहरण के साथ समझें

सबसे पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE getHashValueForEachRow (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Name VARCHAR(20),
    -> Age INT,
    -> Marks INT,
    -> PRIMARY KEY(Id)
    -> ); 
Query OK, 0 rows affected (1.25 sec)

रिकॉर्ड डालें

mysql> INSERT INTO getHashValueForEachRow(Name, Age, Marks) VALUES('Larry', 24, 89); 
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO getHashValueForEachRow(Name, Age, Marks) VALUES('David', 26, 98); 
Query OK, 1 row affected (0.24 sec)
mysql> INSERT INTO getHashValueForEachRow(Name, Age, Marks) VALUES('Bob', 21, 67); 
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO getHashValueForEachRow(Name, Age, Marks) VALUES('Sam', 22, 56); 
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO getHashValueForEachRow(Name, Age, Marks) VALUES('Mike', 25, 80); 
Query OK, 1 row affected (0.72 sec)

सभी रिकॉर्ड देखें

mysql> SELECT * FROM getHashValueForEachRow;

आउटपुट

+----+-------+------+-------+
| Id | Name  | Age  | Marks |
+----+-------+------+-------+
| 1  | Larry | 24   | 89    |
| 2  | David | 26   | 98    |
| 3  | Bob   | 21   | 67    |
| 4  | Sam   | 22   | 56    |
| 5  | Mike  | 25   | 80    |
+----+-------+------+-------+
5 rows in set (0.00 sec)

प्रत्येक रो का हैश वैल्यू प्राप्त करें

mysql> SELECT MD5(CONCAT(Id, Name, Age, Marks)) AS HashValueOfEachRow 
    -> FROM getHashValueForEachRow;

आउटपुट

+----------------------------------+
| HashValueOfEachRow               |
+----------------------------------+
| a5f6b8e1a701d467cf1b4d141027ca27 |
| 6e649522c773b6a6672e625939eb4225 |
| 8bd419e9b7e9e014a4dc0596d70e93c8 |
| 504cf50194a2a6e3481dfa9b8568b9e6 |
| 08716a8dad7105a00c49ea30d278b315 |
+----------------------------------+
5 rows in set (0.00 sec)

CONCAT() सभी कॉलम मानों को जोड़ता है, और MD5() 32-कैरेक्टर हेक्साडेसिमल हैश उत्पन्न करता है। यह डेटा अखंडता जांच, डुप्लिकेट पहचान, या रो-स्तरीय फिंगरप्रिंटिंग के लिए उपयोगी है।

नोट

सुरक्षा-महत्वपूर्ण अनुप्रयोगों के लिए, SHA2() (SHA-256, SHA-512) अधिक सुरक्षित है: SHA2(CONCAT(...), 256)।

  1. - MySQL में COALESCE() से खाली पंक्ति के लिए डिफ़ॉल्ट मान सेट करें

    COALESCE() फ़ंक्शन का उपयोग करके NULL मानों को क्वेरी परिणाम में डिफ़ॉल्ट मान से बदल सकते हैं। यह टेबल डेटा नहीं बदलता, केवल आउटपुट प्रभावित करता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1863 (FirstName VARCHAR(20)); डेटा डालें mysql> INSERT INTO DemoTable1863 VALUES(Chris); mysql> INS

  1. - MySQL में SELECT INTO वेरिएबल से विशिष्ट पंक्ति का एकल मान प्राप्त करें

    SELECT column INTO @variable FROM table WHERE condition का उपयोग करके एकल पंक्ति का एकल मान यूज़र-डिफ़ाइन्ड वेरिएबल में संग्रहीत करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1896 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName VARCHAR(20), StudentMarks INT ); डेटा

  1. - MySQL में विशिष्ट पंक्ति प्राप्त करना

    WHERE, ORDER BY और LIMIT से विशिष्ट पंक्ति चुनें टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1972 ( Section char(1), StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1972 values(D,Chris); ... क्वेरी: C से बड़े सेक्शन को क्रमबद्ध करके पहले 2