zB Ich habe String Cardno = 1111111111111111
(16 Stellen)Wie Format-String-xxxx-xxxx-xxxx-xxxx in Postgres
Ich möchte Cardno durch die Formatierung hinzufügen Bindestrich (-) pro 4 Stellen:
1111-1111-1111-1111
zB Ich habe String Cardno = 1111111111111111
(16 Stellen)Wie Format-String-xxxx-xxxx-xxxx-xxxx in Postgres
Ich möchte Cardno durch die Formatierung hinzufügen Bindestrich (-) pro 4 Stellen:
1111-1111-1111-1111
Wenn Sie Postgres verwenden, können Sie die Vorteile der regexp_replace()
Funktion übernehmen:
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
Hier stellen wir übereinstimmen und erfassen die 16 Stellen in vier Gruppen, dann bauen den Austausch mit dashe s nach Ihren Anforderungen.
Wenn Sie MySQL verwenden, die nicht diese Art von regex Ersatz-Unterstützung bietet, werden Sie die Basis String-Funktionen verwenden müssen:
SELECT CONCAT(SUBSTRING(col, 1, 4), '-', SUBSTRING(col, 5, 4), '-',
SUBSTRING(col, 9, 4), '-', SUBSTRING(col, 13, 4))
FROM yourTable
Danke Tim :) – Decode
Sie nicht nur Stick zufällige Datenbanken in als Tags. Bitte wählen Sie einen bestimmten aus, auf den sich Ihr Problem bezieht. – tadman
Speichern von nackten Kartennummern direkt in einer Datenbank ist keine Standardpraxis. Verschlüsseln Sie stattdessen die Kartennummer und speichern Sie die Hash-Zeichenfolge in der Datenbank. – Daenarys