0
例如我有串cardNo = 1111111111111111
(16位)如何格式化字符串XXXX-XXXX-XXXX-XXXX在Postgres的
我想格式化cardNo通過加破折號( - )每4位:
1111-1111-1111-1111
例如我有串cardNo = 1111111111111111
(16位)如何格式化字符串XXXX-XXXX-XXXX-XXXX在Postgres的
我想格式化cardNo通過加破折號( - )每4位:
1111-1111-1111-1111
如果您使用的是Postgres,你可以利用regexp_replace()
功能:
SELECT regexp_replace(t.col::text, '(\d{4})(\d{4})(\d{4})(\d{4})', '\1-\2-\3-\4', 'g')
FROM
(
SELECT 1111111111111111 AS col
) t
在這裏,我們匹配並捕獲16位四組,然後建立與大社更換s根據您的要求。
如果你正在使用MySQL,它沒有這種類型的正則表達式替換的支持,你必須使用基本字符串函數:
SELECT CONCAT(SUBSTRING(col, 1, 4), '-', SUBSTRING(col, 5, 4), '-',
SUBSTRING(col, 9, 4), '-', SUBSTRING(col, 13, 4))
FROM yourTable
謝謝蒂姆:) – Decode
不要只是隨機的數據庫作爲標籤。請選擇與您的問題相關的特定問題。 – tadman
將裸露卡號直接保存到數據庫中不是標準做法。而是加密卡號並將哈希字符串存儲到數據庫中。 – Daenarys