带有过敏表
| Recipes_id| is_dairy| is_nuts| is_meat| etc.| etc.| etc.|
+-----------+---------+--------+--------+-----+------+-----+
用户只在食谱中指定他不想吃的东西,例如没有坚果和乳制品。
mysql(8.0.1)中是否有一种方法可以在没有预定义长度的参数的情况下进行查询?
例如select from allergies where a = false and b = false and c = false
前面的长度(这里a,b,c = 3)不知道吗?
我将烧瓶用作后端引擎
只是为了澄清起见,变量的数量不是预定义的,例如,在一个查询中可以是3列,在另一个查询中可以是5列(列数必须为false)。
答案 0 :(得分:1)
如果其中没有NULL
,则可以使用NOT IN
进行检查,以确保要检查的列列表中没有true
。
SELECT *
FROM allergies
WHERE true NOT IN (a,
b,
c);
如果您有NULL
,并且应该将它们false
对待,则可以使用colaesce()
。
SELECT *
FROM allergies
WHERE true NOT IN (coalesce(a, false),
coalesce(b, false),
coalesce(c, false));