首页 > 解决方案 > 如何使用 SQL 选择多个值

问题描述

我有一个表格,其中的单元格如下:

user_group可以是admin,,,allowdisallow

user_subscription可以是all,,,penaltyautogoal

我需要获取与以下表达式对应的记录:

All adminand allowwhere user_subscription== all`` orautogoal```

我试着这样做:

('SELECT * FROM USERS WHERE (user_group="allow" OR user_group="admin" AND user_subscription="autogoal" OR user_subscription="all")')

但它不起作用。我在数据库中有 2 个条目:

  1. user_group= admin, user_subscription=```全部``

  2. user_group= allow, user_subscription=```自动目标``

我总是只得到第二个条目。

标签: sqlsqlite

解决方案


您必须正确使用括号,因为AND运算符的优先级高于OR运算符。
所以你的 WHERE 条件相当于:

user_group="allow" 
OR 
(user_group="admin" AND user_subscription="autogoal") 
OR 
user_subscription="all"

像这样写语句:

SELECT * FROM USERS 
WHERE 
  (user_group="allow" OR user_group="admin") 
  AND 
  (user_subscription="autogoal" OR user_subscription="all")

你可以在这里找到更多。
或与IN操作员:

SELECT * FROM USERS 
WHERE 
  user_group IN ("allow", "admin") 
  AND 
  user_subscription IN ("autogoal", "all") 

推荐阅读