从数据库中的URL中选择特定的子域

时间:2013-08-20 21:29:07

标签: php mysql regex preg-match

首先,我不确定我想为我的问题提供的正确标题是什么。随意改变它。

假设我在数据库中有4个URL。

http://joomla.mywebsite.net/3968923121/2412583825325/
http://www.joomla.mywebsite.net.talleresbanfield.com.ar/cadastrar/index.html
http://belowel.com.joomla.mywebsite.net/images/6058873435/1432583285194/
http://test.com.datacity.mywebsite.net/images/joomla.mywebsite.net/


我如何只选择这2个URL

http://joomla.mywebsite.net/3968923121/2412583825325/
http://belowel.com.joomla.mywebsite.net/images/6058873435/1432583285194/

来自给定的用户输入joomla.mywebsite.net。我可以在LIKE %...%期间使用SELECT,但会选择所有4个网址。我只需要显示正确使用joomla.mywebsite.net作为子域名的网址。

我正在考虑首先选择所有网址,分配到数组中并使用preg_match或regex进行匹配,但是在select期间执行单向查询是否有效?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

SELECT url
FROM t1
WHERE SUBSTRING_INDEX(url,'/',3) LIKE '%joomla.mywebsite.net'

SQLFiddle Demo

通过像这样使用 SUBSTRING_INDEX ,您需要比较这部分字符串:

http://joomla.mywebsite.net
http://www.joomla.mywebsite.net.talleresbanfield.com.ar
http://belowel.com.joomla.mywebsite.net
http://test.com.datacity.mywebsite.net

基本上是第3个/

的网址