我的数据库结构就像下图所示的那样。我的表名是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子句来实现这一点,但是应该有一些更短的方法来做到这一点。
发布于 2014-07-15 20:48:00
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 |
+------------+------+https://stackoverflow.com/questions/24764777
复制相似问题