MySQLstring matching

Mask Credit Card Number in MySQL with REGEXP_REPLACE

Mask credit card numbers in MySQL columns using REGEXP_REPLACE for PCI DSS compliance. SQL examples for credit card data masking.

The Regex Pattern

Regex pattern

\b(\d{4})[\s\-]?(\d{4})[\s\-]?(\d{4})[\s\-]?(\d{4})\b

Use this pattern with MySQL's REGEXP operator.

MySQL SQL Example

-- Use MySQL REGEXP_REPLACE to mask the middle digits of credit card numbers in a payments table for compliance
SELECT *
FROM your_table
WHERE your_column REGEXP '\\b(\\d{4})[\\s\\-]?(\\d{4})[\\s\\-]?(\\d{4})[\\s\\-]?(\\d{4})\\b';

How This Works

Use MySQL REGEXP_REPLACE to mask the middle digits of credit card numbers in a payments table for compliance. The regex pattern is used with MySQL's REGEXP operator to filter rows at the database level.

Using regex directly in SQL is efficient for use cases like string matching โ€” it avoids loading data into application memory just to filter it with a regex.

Need a custom SQL + Regex query?

Describe your specific use case in plain English. RegSQL generates the exact MySQL query with the right regex pattern for your schema.

Related SQL Patterns