本文次要展现如何应用mysql的多列组合查问

何为多列组合查问呢,就是查问的值不再是单个列的值,而是组合列的值。比方where (column1,column2) in ((a1,b1),(a2,b2),(a3,b3))

实例

建表

create table t_demo(   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,   name varchar(10),   score int);insert into t_demo(name,score) values('a',10);insert into t_demo(name,score) values('b',20);insert into t_demo(name,score) values('c',30);insert into t_demo(name,score) values('d',40);insert into t_demo(name,score) values('d',50);insert into t_demo(name,score) values('e',60);

多列in查问

select * from t_demo where (name,score) in (('c',30),('e',60));+----+------+-------+| id | name | score |+----+------+-------+| 3  | c    | 30    || 6  | e    | 60    |+----+------+-------+2 rows in setTime: 0.112s

多列=查问

select * from t_demo where (name,score) = ('c',30) or (name,score) = ('e',60);+----+------+-------+| id | name | score |+----+------+-------+| 3  | c    | 30    || 6  | e    | 60    |+----+------+-------+2 rows in setTime: 0.119s

小结

多列组合查问平时比拟少见,首次看还感觉挺神奇的。

doc

  • mysql-filtering-by-multiple-columns
  • selecting-where-two-columns-are-in-a-set