簡體   English   中英

如何僅從mysql中的列(varchar)中提取數值?

[英]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.

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