0

我需要找出一种仅从大型多段记录中返回图像 URL 的方法。我有一个 id (int) 和一个 body (text) 列。所以我的结果需要看起来像这样:

id | body
---------------------
#  | http://... .jpg

返回 " 和 src= 很好,如果需要的话。每页有多个图像,我需要所有图像,最好在单独的行上。

我似乎无法理解这一点,因为我能找到的每一个 SELECT 组合都会让我回到整个记录。我不需要 2,000 字的内容——我只需要 URL。

任何想法,哦,比我更聪明的人的伟大社区?

4

2 回答 2

0
With CTE as
(Select UPPER('HELLO THIS IS A TEST OF THE EMERGENCY 
 HTTP://someurl.domain.gov/wizziwig.jpg and more next and still more text.') 
 as txt
FROM DUAL)
select instr(txt,'HTTP:'), instr(txt,'.JPG'), 
      substr(txt,instr(txt,'HTTP:'),instr(txt,'.JPG')
      -instr(txt,'HTTP:')+4) from CTE

然而,假设只有一个 HTTP:/ 并且只有一个 .JPG

于 2013-04-15T17:30:40.230 回答
0

我的第一个建议是,如果您需要像这样检索整体数据的一部分,那么您应该修改您的数据库模式以以这种方式存储信息。也许可以编写一个脚本来遍历数据库并填充一个仅包含链接的新字段。

除此之外,您可以调查 MySQL 的字符串函数 ( http://dev.mysql.com/doc/refman/5.5/en/string-functions.html ) 以提出可能适合您的解决方案。我可能会建议查看 SUBSTRING_INDEX(基于src=")。但现实情况是,MySQL 的功能对于执行您建议的操作非常有限,特别是如果您需要提取任何给定内容块中的多个 URL。如果您需要在您的应用程序中定期执行此操作,那么最好将此信息拆分到一个单独的字段中。

于 2013-04-15T17:23:57.420 回答