0

我不知道该写什么,一定很简单,但无法弄清楚。我有一个我想做的 sql 请求。

简单的请求:

SELECT name FROM #table WHERE id=$id AND  phone='$phone'

假设我没有提供 $phone 变量或者是空的,我可以从 select 语句中删除所有 AND phone='$phone' 吗?所以它会是

SELECT name FROM #table WHERE id=$id
4

4 回答 4

2

大概您正在构建此查询,因此只需动态构建它。基本逻辑是:

if ($phone == '') {
   $sql = "SELECT name ... WHERE id=$id"
} else {
   $sql = "SELECT name ... WHERE id=$id AND phone='$phone'";
}
于 2013-07-18T16:21:32.470 回答
1

为什么不是这个?

SELECT name FROM #table WHERE id=$id AND (phone='$phone' or '$phone' = '')

您是否因 [phone] 上的索引而对性能进行故障排除?

于 2013-07-18T16:23:19.443 回答
0
$query = "SELECT name FROM #table WHERE id=$id";

if(isset($phone)){
    $query .= " AND phone = '$phone'";
}
于 2013-07-18T16:22:26.443 回答
0

检查是否$phone首先设置了变量。

我在这里还假设您的电话变量应该是一个整数。

if($phone AND isset($phone)) {
   $phone = intval($phone);
   if($phone) {
       // sql query with the phone variable
   } else {
       // sql query without the phone variable
   }
}
于 2013-07-18T16:23:25.927 回答