在mysql查询中获取子字符串

时间:2013-12-09 05:47:48

标签: mysql sql regex

在我的mysql表中,其中一个字段包含自然数据:

{"gateway":"somevalue","location":"http://www.somesite.org/en/someresource","ip":"100.0.0.9"}

我需要从此字段中提取location属性的值,即

  

http://www.somesite.org/en/someresource

在这种情况下。如何编写查询来实现此目的?

1 个答案:

答案 0 :(得分:3)

除了最好不在数据库中存储任何形式(包括JSON)的分隔值,而是规范化数据之外,您可以通过以下方式利用非常方便的SUBSTRING_INDEX()函数

SELECT TRIM(BOTH '"' FROM SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, '"location":', -1), ",", 1)) location
  FROM table_name
 WHERE ...