Mysql查询检查数据库中是否存在url

时间:2016-06-29 07:52:29

标签: php mysql

假设我有$ _POST [' url'] =' http://myexamplesite.com/images/image.jpg&#39 ;; 如果此URL存在于数据库中,我怎样才能得到正确的结果,但看起来像: http://www.myexamplesite.com/images/image.jpg

如果我这样做:

$q='select id from products where url LIKE "%'.$_POST['url'].'%"';

这不会返回始终正确的结果。什么是正确的方法? 感谢

2 个答案:

答案 0 :(得分:2)

如果您需要纯SQL解决方案,可以使用SUBSTRING_INDEX()

SELECT * FROM products WHERE
SUBSTRING_INDEX(SUBSTRING_INDEX(url, 'http://', -1), 'www.',-1) = 
SUBSTRING_INDEX(SUBSTRING_INDEX('".$_POST['url']."', 'http://', -1), 'www.',-1)

这将从两个字符串中删除http://www.,并将比较其余字符串。

答案 1 :(得分:0)

无论

1)标准化数据库中的URL(如果它们都在您自己的站点上)

2)Remove the http://, http://, and www. from search URL喜欢这样:

function pure_url($url) {
   if ( substr($url, 0, 7) == 'http://' ) {
      $url = substr($url, 7);
   }
   if ( substr($url, 0, 8) == 'https://' ) {
      $url = substr($url, 8);
   }
   if ( substr($url, 0, 6) == 'ftp://') {
      $url = substr($url, 6);
   }
   if ( substr($url, 0, 4) == 'www.') {
      $url = substr($url, 4);
   }
   return $url;
}

$url = pure_url('http://www.myexamplesite.com/images/image.jpg');
// $url = 'myexamplesite.com/images/image.jpg';
相关问题