select from table依赖于两列的值

时间:2013-10-29 21:27:20

标签: mysql sql

我有这样的表

id | question | unit | lesson
1  | how       |  1   |   2
2  | when      |  1   |   3
3  | where     |  1   |   4
4  | what      |  2   |   1
5  | how many  |  2   |   2
6  | how much  |  3   |   1
7  | how long  |  3   |   3
8  | how this  |  3   |   4
9  | what is   |  3   |   6

我有一个单元和课程复选框,用户从中选择 我如何从表中选择取决于用户选择 例如:用户选择(1,3),(3,4)

我的代码

SELECT * FROM `prim_3` WHERE (unit IN ( '1' , '3' )) AND (lesson IN ( '3','4'))

1 个答案:

答案 0 :(得分:0)

您的查询也将返回1,4和3,1。试试这个:

SELECT * FROM `prim_3` WHERE 
  (unit = '1' AND lesson = '3') OR
  (unit = '3' AND lesson = '4')

这匹配括号中定义的确切组合的(OR)。

由于operator precedence,您可能不会严格需要括号,但我喜欢在这种情况下使用它们,因为它非常清楚哪些条件属于一起。