Mysql
查找是否有任何行部分匹配字元串
我想看看一個表是否包含給定字元串的任何子字元串。
假設我有一個字元串
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
:SELECT * FROM site_core_antispam_banned_domain WHERE 'subdomain.com' LIKE CONCAT('%', domain_name, '%') ;
以上將查找與給定字元串的任何部分匹配的域。如果您特別想要匹配字元串右側的域(例如,如果要匹配的域是
somedomain.com.ro
並且您只對*.com.ro
結果感興趣),您可以使模式更具體:SELECT * FROM site_core_antispam_banned_domain WHERE 'subdomain.com' LIKE CONCAT('%', domain_name) ;