it-swarm.com.de

Suchen Sie, ob eine der Zeilen teilweise mit einer Zeichenfolge übereinstimmt

Ich möchte sehen, ob eine Tabelle eine Unterzeichenfolge einer bestimmten Zeichenfolge enthält.

Angenommen, ich habe eine Zeichenfolge

somedomain.com 

In der Datenbank habe ich:

blabladomain.com
testdomain.com
domain.com

Ich muss eine Abfrage durchführen, die "domain.com" zurückgibt, da es sich um eine Teilzeichenfolge von "somedomain.com" handelt.

Ich weiß nicht, ob dies in MySQL überhaupt möglich ist.

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;
6
Emanuel

Sie können LOCATE() - wie in der anderen Antwort - oder LIKE verwenden:

SELECT * 
FROM site_core_antispam_banned_domain
WHERE 'subdomain.com' LIKE CONCAT('%', domain_name, '%') ;

Das Obige sucht nach Domänen, die mit einem beliebigen Teil einer bestimmten Zeichenfolge übereinstimmen. Wenn Sie speziell Domains wollten, die mit rechte Seite der Zeichenfolge übereinstimmen (zum Beispiel, wenn die Domain, mit der Sie übereinstimmen möchten, somedomain.com.ro War und Sie nur an *.com.ro Ergebnissen interessiert waren) könnten Sie das Muster spezifischer machen:

SELECT * 
FROM site_core_antispam_banned_domain
WHERE 'subdomain.com' LIKE CONCAT('%', domain_name) ;
8
ypercubeᵀᴹ

Ich denke, alles, was Sie brauchen, ist die Locate-Funktion in MySQL als:

SELECT domain_id,domain_name as a 
FROM site_core_antispam_banned_domain 
where Locate(domain_name,'subdomain.com')!=0;

Hoffe das hilft.

3
Tayyab

Versuch es:

 SELECT * 
 FROM site_core_antispam_banned_domain
 WHERE RIGHT(domain_name,10)='domain.com';
2
Pankaj Kumar

Verwenden Sie LIKE. So finden Sie eine Teilzeichenfolge in einem beliebigen Teil der Zeichenfolge:

SELECT domain FROM mytable WHERE domain LIKE '%domain.com%';

Dies wird tun, was Sie gefragt haben. In Ihren Beispielen steht "domain.com" jedoch immer am Ende der Zeichenfolge. So suchen Sie nach Zeichenfolgen, die mit einem bestimmten Teilstring enden:

column LIKE '%substring'

Beachten Sie, dass bei LIKE nicht zwischen Groß- und Kleinschreibung unterschieden wird. Wenn Sie eine Suche mit Groß- und Kleinschreibung durchführen möchten, ersetzen Sie LIKE durch LIKE BINARY.

2