不喜欢多个OR语句?

joh*_*ohn 1 php mysql

如果有一个邮件脚本,我已设置为我发送到的域.如果没有设置节流速率的剩余域,则会为其分配默认速率.要找到与现有限制域不匹配的域,我使用这个php:

$query = "SELECT * FROM `mailer_lists` ml JOIN `mailer_controller` mc";
        $query .= " ON ml.project_name = mc.project_name";
        $query .= " WHERE `email` NOT LIKE '%";
        $query .= "" . implode("' OR '%", $throttle_domain) . "'";
        echo "$query";
Run Code Online (Sandbox Code Playgroud)

回声的输出是:

SELECT * FROM `mailer_lists` ml JOIN `mailer_controller` mc ON ml.project_name = mc.project_name WHERE `email` NOT LIKE '%gmail.com' OR '%hotmail.com' OR '%yahoo.com' OR '%aol.com'
Run Code Online (Sandbox Code Playgroud)

据我所知,输出看起来非常好.我在phpmyadmin中运行了一个测试查询,只有第一个域适用.在OR之后忽略任何东西.

我错过了这个查询有什么明显的错误吗?使用NOT LIKE语句时,不能使用多个OR语句吗?

Nic*_*ssu 14

我会做

where substring_index(`email`,'@',-1) not in ('yahoo.com','gmail.com')
Run Code Online (Sandbox Code Playgroud)

等等.