我正在尝试编写搜索功能,并使用多个下拉列表来搜索条件。
我有一个像
这样的sql语句SELECT * FROM TABLE WHERE OFFICE='$office', NAME='$name', DEPARTMENT='$department';
有时候我想用特定的“名字”进行搜索,但没有谈论“部门”和“办公室”。但是,当我将Blank''传递给'$ office'和'$ department'时,它只返回没有办公室和部门的人。无论如何要克服它吗?
我尝试使用'%'而不是空白,但它也没有用。 我用php和MSSQL编码。
先谢谢
答案 0 :(得分:2)
如果您想使用通配符,则不需要=
,而是LIKE
。不确定此查询是否有效,但请尝试:
SELECT * FROM TABLE WHERE OFFICE LIKE '$office', NAME LIKE '$name', DEPARTMENT LIKE '$department';
现在您只需检查该字段是否为空,如果是,则将其替换为%
。正如我所说,我不确定。我目前没有可用于测试此数据库的数据库。
答案 1 :(得分:0)
为了实现这一点,你必须编写一些像
这样的PHP代码$sql = "SELECT * FROM TABLE WHERE";
if(isset($office)){
$sql .= "OFFICE='$office',";
}
if(isset($name)){
$sql .= " NAME='$name',";
}
if(isset($department)){
$sql .= " DEPARTMENT='$department'";
}
答案 2 :(得分:0)
您可以轻松执行以下操作:
if(isset($office) && isset($department)){
$sql = "SELECT * FROM TABLE WHERE OFFICE='$office', NAME='$name', DEPARTMENT='$department'";
}
else{
$sql = "SELECT * FROM TABLE WHERE NAME LIKE '$name'";
}
mysql_query($connection, $sql);