这可能是
一个奇怪的问题,但我正在尝试为结果创建一个过滤器,但创建查询的方法对我来说似乎有点奇怪。
假设我有 5 种动物,默认情况下它会搜索所有类型的动物,但是您可以过滤它们。
所以假设我们有猫,狗,爬行动物,鸟类,鱼。我想过滤掉鱼和鸟,我将如何构建查询来注意到这一点?我真的必须为每个可能的组合构建查询吗?这似乎有点荒谬。
所有查询的示例:
SELECT * FROM animals WHERE type = "dogs" OR type = "cats" OR type = "reptiles" OR type = "fish" OR type = "birds"
使用 NOT IN
运算符。 例如,要过滤掉fish
并birds
:
SELECT * FROM animals WHERE type NOT IN ('fish', 'birds')
$array = array('fish', 'birds');
$filter = implode(",", $array);
"SELECT * FROM animals WHERE type NOT IN ($filter)"
通过这种方式,您可以动态填充数组并将其传递给 sql 查询。