1. 程式人生 > >MySQL中一個sql語句包含in優化問題

MySQL中一個sql語句包含in優化問題

col eat pre pan span mysq fin limit clas

第一版sql:

SELECT module.id, module.module_name, module.module_code
 `module` where 
92 IN (module.did_access)
WHERE module.type =2
AND module.status =0
ORDER BY module.create_time ASC
LIMIT 0 , 30 

這樣的sql語句會有缺陷,in的用法雖然看上去沒問題,但是是不對的,這樣查出的數據不全,所以優化了一下:

第二版sql:

select module.id, module.module_name, module.module_code
 
from `budget_project_module` as module where module.type=1 and module.status=0 and FIND_IN_SET(92, module.did_access) order by module.create_time asc

MySQL中一個sql語句包含in優化問題