在我的查詢我一定要找到所有與逗號分隔的記錄下面的ID。MySQL的IN操作符替代
2,20,44,66,68,85,90,101,102,103,125,168
所以我寫了下面的查詢任務
SELECT item_id,
item_name
FROM `items`
WHERE `item_id` IN (2, 20, 44, 66,
68, 85, 90, 101,
102, 103, 125, 168)
但問題是,當用逗號分隔的ID列表是大的查詢執行時間將變大。有沒有其他的方式來完成我的任務。
我的表結構之後DESCRIBE表查詢如下。請檢查
Field Type Null Key Default Extra
asheet_id int(11) unsigned NO PRI NULL auto_increment
asheet_staff_id int(11) unsigned NO NULL
asheet_exam_number int(11) NO NULL
正確的索引將(最可能)解決問題 – baao
item_id是主鍵? - 如果不是這樣的話:ALTER TABLE'items' ADD INDEX item_id_index('item_id') – num8er
我不是有更好的方法。在item_id上創建索引以提高性能 – Laazo