[英]How to extract only the numerical values from a column (varchar) in mysql?
抱歉,如果以前有人問過我,但是我找不到任何幫助。 使用MySQL 5.7,我得到了“統計”列,其格式為{“ Births:” 21678}。 如何僅選擇數字值?
例如 :
Name Statistics
Amsterdam {"Births:" 23456}
Chicago {"Births:" 67890}
我希望輸出為:
Name Births
Amsterdam 23456
Chicago 67890
我想我應該使用REGEXP,但是對於我來說似乎沒有任何作用。
名稱和出生都是列。
您也可以使用字符串函數
select
name
, SUBSTRING(SUBSTRING(Statistics , 1, CHAR_LENGTH(Statistics ) -1),
POSITION(' ' IN SUBSTRING(Statistics , 1, CHAR_LENGTH(Statistics) - 1)), 100) AS Births
from my_table
您不能這樣做,因為REGEXP僅在WHERE子句中起作用,而在select中不起作用。 如果您的“ 統計”列僅包含“ 出生日期” ,則可以執行以下操作
SELECT select MID(Statistics, 11, LENGTH(Statistics)-11) FROM table
但這僅適用於上面給出的示例。 如果統計數據不同,則此方法將行不通。
如果您的MySQL服務器版本為5.7.8或更高版本,則可以使用JSON函數。 應該
SELECT JSON_EXTRACT(Statistics, 'Births') from table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.