选择字段值mysql的一部分

时间:2014-11-17 16:00:36

标签: php mysql sql explode

我有一个数据库字段,其中包含非常特定格式的值。

当我执行以下基本的SQL查询时:

SELECT post_content FROM wp_posts LIMIT 5

返回以下结果集:

[download id="5219"]
[download id="953"]
[download id="958"]
[download id="3907"]
[download id="3909"]

我需要编辑查询,以便它只返回字符串的数值。所以 - 而不是返回:[download id="5219"],我希望它返回5219

这可能吗?

提前致谢:)

2 个答案:

答案 0 :(得分:1)

我认为最简单的方法是使用substring_index()。以下将以数字形式返回值:

select substring_index(post_content, '"', 2) + 0

以下作为字符串:

select substring_index(substring_index(post_content, '"', 2), '"', -1)

答案 1 :(得分:0)

假设模式始终为[download id="x"],您只需要x,您可以使用MySQL REPLACE函数将[download id=""]替换为空字符串

SELECT REPLACE(REPLACE(post_content,'[download id="',''),'"]','') AS post_content 
FROM wp_posts LIMIT 5