MySQL中的多字段IN

30 阅读1分钟

在工作学习中,我们有时会见到类似这样的sql:

SELECT * FROM tbl_user tbu WHERE (tbu.serial, tbu.serial_sub) IN (('SN001', '001'), ('SN002', '002'))

这就是多字段IN。

对于单字段IN,稍微熟悉SQL语法的朋友应该都清楚。而多字段IN则在此基础上增加字段,但落上依旧是“某个单元” 位于 “某个列表”,只是这个单元从原先的一个字段变成了多个字段。 对于上面的SQL,其实是等价于:

SELECT * FROM tbl_user tbu WHERE
(tbu.serial = 'SN001' AND tbu.serial_sub = '001') 
OR 
(tbu.serial = 'SN002' AND tbu.serial_sub = '002')

平时见得不多,在Mybatis的xml中用的可能更多一点。