我想看看一个表是否包含给定字符串的任何子字符串。
假设我有一个字符串
somedomain.com
在数据库中我有:
blabladomain.com
testdomain.com
domain.com
我需要进行一个查询,该查询将返回“domain.com”,因为它是“somedomain.com”的子字符串。
我不知道这在 MySQL 中是否可行。
CREATE TABLE `site_core_antispam_banned_domain` (
`domain_id` int(11) NOT NULL AUTO_INCREMENT,
`domain_name` varchar(255) NOT NULL,
PRIMARY KEY (`domain_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
您可以使用
LOCATE()
- 如在其他答案中一样 - 或LIKE
:上面将查找与给定字符串的任何部分匹配的域。如果您特别想要匹配字符串右侧的域(例如,如果要匹配的域是
somedomain.com.ro
并且您只对*.com.ro
结果感兴趣),您可以使模式更具体:我认为您所需要的只是在 MySQL 中将函数定位为:
希望这可以帮助。
使用喜欢。要查找位于字符串任何部分的子字符串:
这将满足您的要求。但在您的示例中,“domain.com”始终位于字符串的末尾。要查找以某个子字符串结尾的字符串:
请注意,
LIKE
不区分大小写。如果要进行区分大小写的搜索,请替换LIKE
为LIKE BINARY
.试试看: