2012-07-14 38 views
0

舉例來說,如果我有這樣的SQL:不是某一特定年份

---------------------- 
| id  | year  | 
---------------------- 
| 1  | 01-JAN-95 | 
| 2  | 01-JAN-96 | 
| 3  | 01-JAN-97 | 
| 4  | 02-JAN-97 | 
| 5  | 03-JAN-97 | 
---------------------- 

一張桌子,我想選擇的一切,是不是1997年,我會怎麼做呢?

我知道我可以做:

SELECT * FROM table WHERE year not like '%97'; 

但是,有沒有更有效的方法?

+2

什麼是列的類型? – 2012-07-14 07:31:08

回答

2

如果你的表是大,你可能想試試這個:

SELECT * FROM yourtable 
WHERE datecol < '1997-01-01' 
OR datecol >= '1998-01-01'; 
+0

+1這是你想要做的,因爲它避免了必須將'datecol'包裝在一個函數中,這使得它不可靠。通過使用裸列進行比較,MySQL可以使用索引範圍掃描操作,這種操作效率更高。 – 2012-07-14 07:40:07