Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL आउटपुट मास्किंग (यानी फोन नंबर, SSN, आदि डिस्प्ले फॉर्मेटिंग)

यहाँ मैं क्या लेकर आया हूँ, यदि आपके पास कोई संशोधन या सुधार है तो कृपया उन्हें टिप्पणियों के रूप में छोड़ दें और मैं कोड को अपडेट कर दूंगा। अन्यथा यदि आप इसे पसंद करते हैं, तो इसे टक्कर न दें। आनंद लें!

DELIMITER //

CREATE FUNCTION mask (unformatted_value BIGINT, format_string CHAR(32))
RETURNS CHAR(32) DETERMINISTIC

BEGIN
# Declare variables
DECLARE input_len TINYINT;
DECLARE output_len TINYINT;
DECLARE temp_char CHAR;

# Initialize variables
SET input_len = LENGTH(unformatted_value);
SET output_len = LENGTH(format_string);

# Construct formated string
WHILE ( output_len > 0 ) DO

SET temp_char = SUBSTR(format_string, output_len, 1);
IF ( temp_char = '#' ) THEN
IF ( input_len > 0 ) THEN
SET format_string = INSERT(format_string, output_len, 1, SUBSTR(unformatted_value, input_len, 1));
SET input_len = input_len - 1;
ELSE
SET format_string = INSERT(format_string, output_len, 1, '0');
END IF;
END IF;

SET output_len = output_len - 1;
END WHILE;

RETURN format_string;
END //

DELIMITER ;

इसका उपयोग करने का तरीका यहां बताया गया है... यह केवल पूर्णांकों के लिए काम करता है (अर्थात SSN Ph# आदि)

mysql> select mask(123456789,'###-##-####');
+-------------------------------+
| mask(123456789,'###-##-####') |
+-------------------------------+
| 123-45-6789                   |
+-------------------------------+
1 row in set (0.00 sec)

mysql> select mask(123456789,'(###) ###-####');
+----------------------------------+
| mask(123456789,'(###) ###-####') |
+----------------------------------+
| (012) 345-6789                   |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select mask(123456789,'###-#!##@(###)');
+----------------------------------+
| mask(123456789,'###-#!##@(###)') |
+----------------------------------+
| [email protected](789)                   |
+----------------------------------+
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel टाइमस्टैम्प ऐसा करने के लिए स्पष्ट कॉल के बिना अद्यतन किया जा रहा है

  2. लारवेल विज़िटर काउंटर

  3. mysql:NOT LIKE के लिए सही सिंटैक्स क्या है?

  4. परिणामसेट के बिना ResultSetMetaData के बराबर कैसे प्राप्त करें

  5. आप Node.js में MySQL (बिना ORM के) का मज़ाक कैसे उड़ाते हैं?