Php MySQL使用WHERE、LIKE或and选择
我试图通过他们的公司名称或客户名称(名字和姓氏)搜索客户数据库。但我也需要根据它们是否处于活动/非活动/删除状态进行搜索。但我的查询似乎忽略了最后1或2条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
和语句
以下是我目前掌握的情况:
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语句