我具有下图所示的数据库结构。我的表名称是compare_analytics
我知道如何针对多个列检查单个值。如下所示的示例:
SELECT * FROM `compare_analytics` WHERE '1MB20D-060' IN (igbt1,igbt2,igbt3)
我想针对多个值检查多个列。就像,我想选择存在
IRG4BC30FD
和IRG4BC30FD
igbt的所有行,它们在行中的位置无关紧要。它们可以在任何列的igbt1,igbt2或igbt3中。查询应该选择ID为4,5和6的行,因为这些行中存在这些值,因此理想情况下。
我正在寻找没有
OR
子句的查询,我知道可以使用OR
子句实现,但是应该有一些更短的方法来实现。 最佳答案
DROP TABLE IF EXISTS compare_analytics;
CREATE TABLE compare_analytics
(igbt VARCHAR(20) NOT NULL
,type INT NOT NULL
,PRIMARY KEY(igbt,type)
);
INSERT INTO compare_analytics VALUES
('1MB20D-040',1),
('1MB20D-050',2),
('1MB20D-060',3);
SELECT *
FROM compare_analytics
WHERE igbt IN ('1MB20D-040','1MB20D-060');
+------------+------+
| igbt | type |
+------------+------+
| 1MB20D-040 | 1 |
| 1MB20D-060 | 3 |
+------------+------+
关于mysql - 检查多列mysql中的多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24764777/