0
我有一个表“内容”列存储论坛帖子,有一个或多个网址在“内容”字段的一个记录中,我想获得所有的url在“内容”一栏,一行一个网址,我用下面的代码从mysql表中的一列中选择多个网址
select substr(`content`, locate(`content`,"http://"))
它一个URL出现在一个记录工作,得到URL列表像
如果记录中存在多个网址,它只会获得第一个网址。
如何解决呢?
我有一个表“内容”列存储论坛帖子,有一个或多个网址在“内容”字段的一个记录中,我想获得所有的url在“内容”一栏,一行一个网址,我用下面的代码从mysql表中的一列中选择多个网址
select substr(`content`, locate(`content`,"http://"))
它一个URL出现在一个记录工作,得到URL列表像
如果记录中存在多个网址,它只会获得第一个网址。
如何解决呢?
另一种方式来看待它是尝试:
SELECT GROUP_CONCAT(substr(`content`, locate(`content`,"http://"))) FROM your_table;
这将串连所有URL到一个字符串,并从那里进行 - 也许你可以在它的代码分裂,而不是要求DB来做到这一点。否则,你可以破解使用整数的辅助表1-N:SQL split comma separated row
如果数据被规格化,因此值是相互独立存储肯定会更容易些...... – David
这可以帮助:HTTP://计算器.com/questions/17942508/sql-split-values-to-multiple-rows,但是要走的路是像上面的@David所说的 - 首先规范化数据。 – ptrk
这是正常的一些职位有不止一个网址,就像回复一些新手的问题,有些用户会回复一些链接,所以有一个职位有2或3个链接。 – eagle