mySql search & quot; sub.domain.com & quot; от & quot; domain.com & quot;

Summery:

В таблице MySql строки

  • domain.com
  • domain.net
  • stackoverflow.com

Я хочу найти «sub.domain.com» из таблицы … Как ??


Деталь:
Привет, я работаю над сценарием проверки электронной почты,

У меня есть список доменов черного списка в массиве …
Теперь я хочу перейти к базе данных …

Но некоторые логически выдают ..

Предыдущий код с массивом

$blacklist_domains  = array("domain.com","domain.net");
foreach($blacklist_domains as $val) {
//$domain can be with or without sub domain
if( preg_match( "/$val/", $domain)){
return true;
}
}

здесь работает, у меня есть список доменов,
но когда я хочу искать домен, это может быть домен / поддомен (теоретически, но эта теория все еще не соответствует действительности)
Так что этот цикл поиска черного списка в домене

foreach($blacklist_domains as $val) {
//$domain can be with or without sub domain
if( preg_match( "/$val/", $domain)){
return true;
}
}

**run time concept:**

//preg_match( "/blacklist/", "find this");
if( preg_match( "/domain.com/", "sub.domain.com")){
return true;
}

Вопрос:
Теперь я хочу перенести эту концепцию в базу данных …
в базе данных мои строки,

  • domain.com
  • domain.net

Теперь я хочу искать sub.domain.com в таблице

Как ИЛИ какая-нибудь лучшая идея?

Моя цель состоит в том, чтобы просто проверить домен черного списка электронной почты из моего домена черного списка
список в базе данных

Спасибо

-1

Решение

Если бы вы имели sub.domain.com в вашей базе данных и искали domain.comвы бы использовали LIKE:

SELECT * FROM domains WHERE domain LIKE '%domain.com%';

Но ты не

Это означает, что вам нужно «обратное» LIKE:

SELECT * FROM domains WHERE 'sub.domain.com' LIKE CONCAT('%', domain, '%');

Чтобы сделать ваш код более эффективным, вы даже можете использовать COUNT() чтобы получить количество строк для непосредственного использования в вашем коде:

SELECT COUNT(*) AS count FROM domains WHERE 'sub.domain.com' LIKE CONCAT('%', domain, '%');
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector