我有一个数据库字段,其中包含非常特定格式的值。
当我执行以下基本的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
这可能吗?
提前致谢:)
答案 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