這裏是我的表:如何在多列中搜索?
// table
+----+------+------+
| id | col1 | col2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 2 |
| 6 | 3 | 1 |
| 7 | 3 | 2 |
| 8 | 3 | 3 |
| 9 | 3 | 4 |
| 10 | 3 | 5 |
+----+------+------+
現在我想在這兩個col1
和col2
進行搜索。事情是這樣的:
select * from table where col1,col2 IN (1,2);
而且我想這個輸出:
+----+------+------+
| id | col1 | col2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 2 |
| 6 | 3 | 1 |
| 7 | 3 | 2 |
+----+------+------+
好吧,我的問題是關於這一部分:... where col1,col2 IN (1,2)
。我該如何解決它?
注:我可以這樣做:... where col1 IN (1,2) or ,col2 IN (1,2)
。但是這樣,我必須在每一列上創建兩個單獨的索引。雖然我想要一個需要像這樣的組索引的查詢:KEY NameIndex (col1, col2)
嘗試'WHERE 1 IN(COL1,COL2)或2(COL1,COL2)' –
@GiorgosBetsos好TNX,只是你的解決方案比這更好? col1 IN(1,2)或col2 IN(1,2)'? – stack
使用'EXPLAIN'來查看我推薦的謂詞是否使用了你的複合索引。如果不是,那麼我所建議的是無用的。 –