我有一個存儲過程類似於以下使用FIND_IN_SET的VS IN子句MySQL存儲過程
SELECT *
FROM Table1
WHERE Tag IN (ids)
這裏Tag
是Integer
列。
我厭倦了逗號分隔值作爲字符串傳入存儲過程,但它不起作用。像下面
SELECT *
FROM Table1
WHERE FIND_IN_SET(Tag, ids)
這工作得很好然後我用存儲過程,唯一的問題是我的表是非常大的 - 數百萬行,並使用FIND_IN_SET太長時間運行比較直接的SQL語句時需要爲IN。
什麼是最佳性能優化選項?
是否有一個拆分函數可以將ID轉換爲整數並解析它準備好IN子句?我認爲這將是最好的選擇。任何建議或想法?
http://stackoverflow.com/questions/6152137/mysql-string-split –