over 3 years ago

在wehere in (ids)要撈出資料時,要依造ids排序固定住

可以使用find_in_set(column_name, 'v1, v2, v3')

sample.sql
    EXPLAIN
    select id, name, click
    from products
    where id in (3, 1, 2, 9)
    order by find_in_set(id, '3, 1, 2, 9')

但可惜的是...sql client解析出來的是using where; using filesort;

第一次搜尋的確有用index,但是第二次就是用filesort了,所以要確保撈出來是少量資料。

另外,如果要分析你寫的SQL有沒有使用到index可以使用EXPLAIN語法,放到SQL語句最前面就好

參考:
http://www.ccvita.com/169.html

← Yii所有或外部資源tag都加上亂數防止catch mysql-撈某時間區中的固定月份 →