WHERE语句有条件

时间:2013-07-18 16:18:56

标签: mysql

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

简单请求:

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

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

SELECT name FROM #table WHERE id=$id

4 个答案:

答案 0 :(得分:2)

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

if ($phone == '') {
   $sql = "SELECT name ... WHERE id=$id"
} else {
   $sql = "SELECT name ... WHERE id=$id AND phone='$phone'";
}

答案 1 :(得分:1)

为什么不呢?

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

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

答案 2 :(得分:0)

$query = "SELECT name FROM #table WHERE id=$id";

if(isset($phone)){
    $query .= " AND phone = '$phone'";
}

答案 3 :(得分: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
   }
}