テーブルに特定の文字列のサブ文字列が含まれているかどうかを確認したい。
文字列があるとしましょう
somedomain.com
データベースに私が持っています:
blabladomain.com
testdomain.com
domain.com
「somedomain.com」の部分文字列なので、「domain.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, '%') ;
上記は、特定の文字列のany partに一致するドメインを探します。文字列の右側に一致するドメインが特に必要な場合(たとえば、照合するドメインがsomedomain.com.ro
そしてあなたは*.com.ro
結果)、パターンをより具体的にすることができます:
SELECT *
FROM site_core_antispam_banned_domain
WHERE 'subdomain.com' LIKE CONCAT('%', domain_name) ;
私はあなたが必要とするのはMySQLのLocate関数だけです:
SELECT domain_id,domain_name as a
FROM site_core_antispam_banned_domain
where Locate(domain_name,'subdomain.com')!=0;
お役に立てれば。
それを試してみてください:
SELECT *
FROM site_core_antispam_banned_domain
WHERE RIGHT(domain_name,10)='domain.com';
LIKEを使用します。文字列の任意の部分にある部分文字列を見つけるには:
SELECT domain FROM mytable WHERE domain LIKE '%domain.com%';
これはあなたが尋ねたことをします。ただし、例では「domain.com」は常に文字列の最後にあります。特定のサブストリングで終わるストリングを検索するには、次のようにします。
column LIKE '%substring'
LIKE
は大文字と小文字を区別しないことに注意してください。大文字と小文字を区別する検索を実行する場合は、LIKE
をLIKE BINARY
に置き換えます。