postgres:select 行,参数是任何东西
postgres: select rows where a parameter is anything
我在 WHERE 子句的查询中传递参数。我想创建一个案例,其中 where 中的任何参数都可以(比如省略值)。
例如:
SELECT * FROM USERS WHERE lang=%s
我可以传入 'en'、'it'、'es' 等占位符字符串。但是如果我想获取 lang 列中的所有内容怎么办?就像我没有在 where 子句中提到 lang 一样?
是否有类似的东西:
SELECT * FROM USERS WHERE lang=ANYTHING
??
您可以使用 NULL
作为您不关心语言的指标。然后您可以使用 IS NULL
检查该值是否为 null 并因此包括所有行。使用 OR
附加相等性检查。这样,如果该值不为空,则它必须与要返回的行的语言相匹配。
SELECT *
FROM users
WHERE %s IS NULL
OR lang = %s;
我在 WHERE 子句的查询中传递参数。我想创建一个案例,其中 where 中的任何参数都可以(比如省略值)。
例如:
SELECT * FROM USERS WHERE lang=%s
我可以传入 'en'、'it'、'es' 等占位符字符串。但是如果我想获取 lang 列中的所有内容怎么办?就像我没有在 where 子句中提到 lang 一样?
是否有类似的东西:
SELECT * FROM USERS WHERE lang=ANYTHING
??
您可以使用 NULL
作为您不关心语言的指标。然后您可以使用 IS NULL
检查该值是否为 null 并因此包括所有行。使用 OR
附加相等性检查。这样,如果该值不为空,则它必须与要返回的行的语言相匹配。
SELECT *
FROM users
WHERE %s IS NULL
OR lang = %s;