データベーステーブルに1つの列名phone_numberがあります。現在、テーブルに格納されている数値は、例+91-852-9689568のような形式です。フォーマットしたいのですが数字だけが必要です。MySqlでそれを行うにはどうすればよいですか?REGEXPのような関数を使って試しましたが、関数が存在しないなどのエラーが表示されます。複数のREPLACEを使用したくありません。
4 に答える
0
オプションの 1 つは、 を使用することmySql substring
です。(形式が変わらない限り)
SELECT concat(SUBSTRING(pNo,2,2), SUBSTRING(pNo,5,3), SUBSTRING(pNo,9,7));
于 2012-12-26T11:24:31.813 に答える
0
以下を試して、コメントしてください。
Select dbo.Regex('\d+',pNo);
Select dbo.Regex('[0-9]+',pNo);
RUBLARを参照。
したがって、MYSQL は Oracle とは異なりますUSer defined Function to get numbers
。これでうまくいくかもしれません。
于 2012-12-26T11:36:58.233 に答える
0
プロジェクションのみを使用してフォーマットする場合はSELECT
、を使用します。replace を 2 回使用するだけで問題ありません。
SELECT REPLACE(REPLACE(columnNAme, '-', ''), '+', '')
FROM tableName
それ以外の場合、値を永続的に更新する場合は、UPDATE を使用します
UPDATE tableName
SET columnName = REPLACE(REPLACE(columnNAme, '-', ''), '+', '')
于 2012-12-26T11:34:37.227 に答える
0
MySQL には、パターン マッチングと置換のための組み込み関数がありません。
文字列全体をアプリケーションにフェッチしてから、より柔軟な文字列操作関数を使用することをお勧めします。たとえば、PHP の preg_replace() です。
于 2012-12-26T11:34:44.497 に答える