怎么做自己的html网站,网站收录不好的原因,长春做网站优化的公司,集团响应式网站建设SQL 中最强大的也是最复杂的就是查询部分。在需要查询多条记录时我们一般会采用 in 关键字来指定要查询的条件#xff1a;SELECT * FROM t_user WHERE uid IN (1,2,3,4,5,6,7,8,9);但如果对应的数据需要两个或更多字段才能确定#xff0c;可能会写出以下的 SQL 语句#xff… SQL 中最强大的也是最复杂的就是查询部分。在需要查询多条记录时我们一般会采用 in 关键字来指定要查询的条件SELECT * FROM t_user WHERE uid IN (1,2,3,4,5,6,7,8,9);但如果对应的数据需要两个或更多字段才能确定可能会写出以下的 SQL 语句SELECT * FROM t_user WHERE
(first_name first_name_1 AND last_name last_name_1) OR
(first_name first_name_2 AND last_name last_name_2) OR
(first_name first_name_3 AND last_name last_name_3) OR
(first_name first_name_4 AND last_name last_name_4) OR
(first_name first_name_5 AND last_name last_name_5) OR
(first_name first_name_6 AND last_name last_name_6) OR
(first_name first_name_7 AND last_name last_name_7);以上代码当然能用但拼接出来的语句过于复杂。有一个方法可以改善这个问题就是使用多列 IN 的语法。MySQL 中的多列 IN 查询MySQL 是支持多列 IN 查询的。以上的 SQL 可以改写为SELECT * FROM t_user WHERE (first_name,last_name) IN ((first_name_1,last_name_1),(first_name_2,last_name_2),(first_name_3,last_name_3),(first_name_4,last_name_4),(first_name_5,last_name_5),(first_name_6,last_name_6),(first_name_7,last_name_7)
);SQLite 中的多列 IN 查询SQLite 也支持多列 IN 查询只是语法上和 MySQL 有所不同需要多加一个 VALUES 关键字SELECT * FROM t_user WHERE (first_name,last_name) IN ( VALUES(first_name_1,last_name_1),(first_name_2,last_name_2),(first_name_3,last_name_3),(first_name_4,last_name_4),(first_name_5,last_name_5),(first_name_6,last_name_6),(first_name_7,last_name_7)
);PostgreSQL 中的多列 IN 查询PostgreSQL 也支持队列 IN 查询在官方文档中这种形式被称为“行构造器”参见PostgreSQL 子查询表达式 。其多列查询的语法和 MySQL 相同SELECT * FROM t_user WHERE (first_name,last_name) IN ( (first_name_1,last_name_1),(first_name_2,last_name_2),(first_name_3,last_name_3),(first_name_4,last_name_4),(first_name_5,last_name_5),(first_name_6,last_name_6),(first_name_7,last_name_7)
);其他数据库对多列 IN 查询的支持情况多列 IN 并非受所有数据库支持。根据网上的资料Oracel 是支持该操作的但 SQL Server 不支持。其他数据库的支持情况因笔者没有测试环境并未进行测试。