2016-12-16 1 views
0

申し訳ありませんが、前に尋ねられましたが、役に立たないものは見つかりませんでした。 MySQL 5.7を使用して、{"Births:" 21678}という形式のカラム "Statistics"を取得しました。数値のみを選択する方法は?例えばどのようにmysqlの列(varchar)から数値のみを抽出するのですか?

Name    Statistics 

Amsterdam   {"Births:" 23456} 

Chicago   {"Births:" 67890} 

そして、私は出力になりたいでしょう:

Name   Births 

Amsterdam 23456 

Chicago  67890 

私はREGEXPを使用する必要がありますと仮定したが、何も私の場合には動いていないようにみえ。

名前と生年月日は両方とも列です。 REGEXPは唯一のWHERE句ではなく、選択で動作しますので、

答えて

0

あなたは、あなたがこれを行うことはできませんまた、文字列関数

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 
0

を使用することができます。あなたの統計列は、常に出生が含まれている場合は、

SELECT select MID(Statistics, 11, LENGTH(Statistics)-11) FROM table 

ような何かを行うことができますしかし、これは上記の例で動作します。統計が異なる場合、この方法は機能しません。

5.7.8以上のmysqlサーバがある場合は、JSON関数を使用できます。

SELECT JSON_EXTRACT(Statistics, 'Births') from table 
関連する問題