2016-01-20 33 views
-1

综述:MYSQL搜索 “sub.domain.com”,从 “domain.com”

在MySQL表行

  • domain.com
  • domain.net
  • 计算器.com

我想从表中搜索“sub.domain.com”...如何?


详细信息: 嗨,我工作的电子邮件验证脚本,

我在阵列黑名单域的列表... 现在我想移动到数据库...

但一些逻辑上发出..

以前的代码,以阵列

$blacklist_domains = array("domain.com","domain.net"); 
    foreach($blacklist_domains as $val) { 
     //$domain can be with or without sub domain 
     if(preg_match("/$val/", $domain)){ 
       return true; 
     } 
    } 

这里工作,我有域列表, 但是当我要搜索领域,它可能是域/子域(我从理论上说,但这一理论仍然不是真的) 所以这个循环搜索域黑名单

foreach($blacklist_domains as $val) { 
    //$domain can be with or without sub domain 
    if(preg_match("/$val/", $domain)){ 
     return true; 
    } 
} 

**run time concept:** 

//preg_match("/blacklist/", "find this"); 
if(preg_match("/domain.com/", "sub.domain.com")){ 
    return true; 
} 

问: 现在,我想这个概念在数据库我行是移动数据库...... ,

  • domain.com
  • domain.net

现在我想搜索sub.domain.com表

如何或任何更好的主意?

我的目标是,刚刚从我的黑名单域名 列表来查看电子邮件黑名单域数据库

谢谢

+0

请仔细阅读[我可以问什么议题有关(http://stackoverflow.com/help/on-topic) 和[如何问一个好曲(http://stackoverflow.com/help/how-to-ask) 和[完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question /) SO是**不是免费的编码服务**你必须证明你已经做出了一些努力来解决你自己的问题。 – RiggsFolly

+0

好吧,我会搜索,请告诉我,关键字,我在谷歌搜索?这个东西的名字是什么?我在说什么?我想它不是一个像查询的地方clouse ... –

回答

0

如果你将不得不在你的数据库sub.domain.com而正在寻找对于domain.com,您应该使用LIKE

SELECT * FROM domains WHERE domain LIKE '%domain.com%'; 

,但你不

这意味着,你需要一个“倒” LIKE

SELECT * FROM domains WHERE 'sub.domain.com' LIKE CONCAT('%', domain, '%'); 

为了使你的代码更有效,你甚至可以用COUNT()获得的行数在代码中直接使用:

SELECT COUNT(*) AS count FROM domains WHERE 'sub.domain.com' LIKE CONCAT('%', domain, '%'); 
+0

谢谢,你给我我的答案,但我不知道为什么有人给你负面的标志......! –