我不知道该写什么,一定很简单,但无法弄清楚。我有一个我想做的 sql 请求。
简单的请求:
SELECT name FROM #table WHERE id=$id AND phone='$phone'
假设我没有提供 $phone 变量或者是空的,我可以从 select 语句中删除所有 AND phone='$phone' 吗?所以它会是
SELECT name FROM #table WHERE id=$id
我不知道该写什么,一定很简单,但无法弄清楚。我有一个我想做的 sql 请求。
简单的请求:
SELECT name FROM #table WHERE id=$id AND phone='$phone'
假设我没有提供 $phone 变量或者是空的,我可以从 select 语句中删除所有 AND phone='$phone' 吗?所以它会是
SELECT name FROM #table WHERE id=$id
大概您正在构建此查询,因此只需动态构建它。基本逻辑是:
if ($phone == '') {
$sql = "SELECT name ... WHERE id=$id"
} else {
$sql = "SELECT name ... WHERE id=$id AND phone='$phone'";
}
为什么不是这个?
SELECT name FROM #table WHERE id=$id AND (phone='$phone' or '$phone' = '')
您是否因 [phone] 上的索引而对性能进行故障排除?
$query = "SELECT name FROM #table WHERE id=$id";
if(isset($phone)){
$query .= " AND phone = '$phone'";
}
检查是否$phone
首先设置了变量。
我在这里还假设您的电话变量应该是一个整数。
if($phone AND isset($phone)) {
$phone = intval($phone);
if($phone) {
// sql query with the phone variable
} else {
// sql query without the phone variable
}
}