Php MySQL使用WHERE、LIKE或and选择

Php MySQL使用WHERE、LIKE或and选择,php,mysql,Php,Mysql,我试图通过他们的公司名称或客户名称(名字和姓氏)搜索客户数据库。但我也需要根据它们是否处于活动/非活动/删除状态进行搜索。但我的查询似乎忽略了最后1或2条和语句 以下是我目前掌握的情况: if($type == 'deleted') { $sql = "SELECT * FROM `".self::$table_name."` WHERE `company_name` LIKE '%{$id}%' OR CONCAT(first_nam

我试图通过他们的公司名称或客户名称(名字和姓氏)搜索客户数据库。但我也需要根据它们是否处于活动/非活动/删除状态进行搜索。但我的查询似乎忽略了最后1或2条
语句

以下是我目前掌握的情况:

    if($type == 'deleted') {
        $sql = "SELECT * FROM `".self::$table_name."` 
        WHERE `company_name` LIKE '%{$id}%' 
        OR CONCAT(first_name, ' ', last_name) LIKE '%{$id}%'
        AND `deleted` = '1'";
    } elseif($type == 'inactive') {
        $sql = "SELECT * FROM `".self::$table_name."`
        WHERE `company_name` LIKE '%{$id}%' 
        OR CONCAT(first_name, ' ', last_name) LIKE '%{$id}%'
        AND `deleted` = '0' AND `status` = 'inactive'";
    } else {
        $sql = "SELECT * FROM `".self::$table_name."`
        WHERE `company_name` LIKE '%{$id}%'
        OR CONCAT(first_name, ' ', last_name) LIKE '%{$id}%'
        AND `status` = 'active' AND `deleted` = '0'";
    }
我传递了一个类型,它是活动的、非活动的或已删除的。如果未传递任何内容,则默认为“活动”。然而,因为我需要搜索公司名称,或者名字和姓氏的缩写,它似乎忽略了最后几个和语句

当我搜索非活动时,它会带来一些结果,但包括活动/非活动/已删除的结果。我哪里做错了?我知道这一定和手术室有关,但我怎么才能避开它呢

if($type == 'deleted') {
        $sql = "SELECT * FROM `".self::$table_name."` WHERE ( `company_name` LIKE '%{$id}%' OR CONCAT(first_name, ' ', last_name) LIKE '%{$id}%' ) AND `deleted` = '1'";
    } elseif($type == 'inactive') {
        $sql = "SELECT * FROM `".self::$table_name."` WHERE ( `company_name` LIKE '%{$id}%' OR CONCAT(first_name, ' ', last_name) LIKE '%{$id}%' ) AND `deleted` = '0' AND `status` = 'inactive'";
    } else {
        $sql = "SELECT * FROM `".self::$table_name."` WHERE ( `company_name` LIKE '%{$id}%' OR CONCAT(first_name, ' ', last_name) LIKE '%{$id}%' ) AND `status` = 'active' AND `deleted` = '0'";
    }
将OR条件放在()中,后跟AND语句