0

这可能是一个奇怪的问题,但我正在尝试为结果创建过滤器,但创建查询的方法对我来说似乎有点奇怪。

假设我有 5 种动物,默认情况下它会搜索所有类型的动物,但是您可以过滤它们。

所以说我们有猫、狗、爬行动物、鸟、鱼。我想过滤掉鱼和鸟,我将如何构建一个查询来注意到这一点?我真的必须为每个可能的组合构建查询吗?这似乎有点荒谬。

所有示例查询:

SELECT * FROM animals WHERE type = "dogs" OR type = "cats" OR type = "reptiles" OR type = "fish" OR type = "birds"
4

2 回答 2

0

使用NOT IN运算符。例如,过滤掉fishand birds

SELECT * FROM animals WHERE type NOT IN ('fish', 'birds')
于 2012-05-29T23:34:12.787 回答
0
$array = array('fish', 'birds');
$filter = implode(",", $array);

"SELECT * FROM animals WHERE type NOT IN ($filter)"

这样,您可以动态填充数组并将其传递给 sql 查询。

于 2012-05-29T23:41:31.933 回答