簡體   English   中英

MySQL的:查詢的格式在數據庫表中的特定列

[英]MySql : query to format a specific column in database table

我在數據庫表中有一列名為phone_number的列,現在存儲在表中的數字格式如ex。+ 91-852-9689568。我想對其進行格式化,只需要數字即可。 我該如何在MySql中做到這一點? 我已經嘗試過使用REGEXP之類的功能,但是它會顯示錯誤,例如功能不存在。而且我不想使用多個REPLACE。

選項之一是使用mySql substring (只要格式不變)

SELECT concat(SUBSTRING(pNo,2,2), SUBSTRING(pNo,5,3), SUBSTRING(pNo,9,7)); 

如果您只想通過投影進行格式化,請使用SELECT ,則只需使用一次replace即可,這沒有問題。

SELECT REPLACE(REPLACE(columnNAme, '-', ''), '+', '') 
FROM   tableName

否則,如果要永久更新該值,請使用UPDATE。

UPDATE tableName
SET    columnName = REPLACE(REPLACE(columnNAme, '-', ''), '+', '')

MySQL沒有用於模式匹配和替換的內置函數。

您最好將整個字符串取回您的應用程序,然后在其上使用更靈活的字符串操作函數。 例如,PHP中的preg_replace()。

請嘗試以下內容並發表評論。

Select dbo.Regex('\d+',pNo);

Select dbo.Regex('[0-9]+',pNo);

參考RUBLAR

因此,MYSQL與Oracle不同,因此您可以僅使用USer defined Function to get numbers 這可以幫助您前進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM