Ema*_*uel 9 mysql string string-searching
我想查看一个表是否包含给定字符串的任何子字符串。
假设我有一个字符串
somedomain.com
Run Code Online (Sandbox Code Playgroud)
在数据库中我有:
blabladomain.com
testdomain.com
domain.com
Run Code Online (Sandbox Code Playgroud)
我需要进行一个查询,该查询将返回“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;
Run Code Online (Sandbox Code Playgroud)
ype*_*eᵀᴹ 12
您可以使用LOCATE()- 就像在另一个答案中一样 - 或LIKE:
SELECT *
FROM site_core_antispam_banned_domain
WHERE 'subdomain.com' LIKE CONCAT('%', domain_name, '%') ;
Run Code Online (Sandbox Code Playgroud)
以上将查找与给定字符串的任何部分匹配的域。如果您特别想要与字符串右侧匹配的域(例如,如果要匹配的域是somedomain.com.ro并且您只对*.com.ro结果感兴趣),您可以使模式更具体:
SELECT *
FROM site_core_antispam_banned_domain
WHERE 'subdomain.com' LIKE CONCAT('%', domain_name) ;
Run Code Online (Sandbox Code Playgroud)