我正在使用php编译一个长的mySQL查询。为了上下文的缘故,我做了一个mySQL查询,它扫描表'rentals',其中有字段'id'、'rent'、'type'、'num_bedrooms'。条目的示例可以是:
租金=600,类型=house,客房数量=5

租金=450,类型=公寓,客房数量=3
填写搜索字段时,用户可以选择“any”搜索“type”和“num_bedrooms”。注意SQL“type IS NOT NULL”行,我的问题是:
是否可以改为“type=NOT NULL”?
(我的想法是,如果用户在'any'中搜索'type',那么我在php中将变量'$type'设置为'house'以查找房屋,'apartment'以查找公寓,或者'NOT NULL'以查找全部)

<?php
$min_rent = 200;
$max_rent = 1000;
$type = "NOT NULL"; //or it can be equal to "house" or "apartment"
$num_bedrooms = 2;  //e.g. 2 or more bedrooms

$sql = "SELECT * FROM properties WHERE ";
$sql .= "rent >= {$min_rent} AND rent <= {$max_rent} AND ";
$sql .= "type = {$type} ";  //in this case, I want 'type' to equal 'NOT NULL'
$sql .= "num_bedrooms >= {$num_bedrooms} ";
?>

我不能测试这个,因为我目前没有在我的测试PC上,但我非常陌生的mySQL语句,想知道这是否可能。谢谢

最佳答案

不-不为空是一个特殊函数。
一般来说你会把
$sql.=“类型={$type}”;
在if语句中,它将在构造SQL语句时检查$type的值。

关于php - MySQL中“IS NOT NULL”的替代语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6696265/

10-16 15:14