使用启用/禁用的过滤器变量的 MySQL PDO 创建 SQL 查询


Creating an SQL query with MySQL PDO with enabled/disabled filter variables

这可能是

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

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

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

所有查询的示例:

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

使用 NOT IN 运算符。 例如,要过滤掉fishbirds

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 查询。