请教,优化一个SQL语句!!!SQL codeSELECTu.idFROMuser u,(SELECTid,treeFROMuserWHERE id IN (30, 59, 58,
请教,优化一个SQL语句!!!
SQL codeSELECT u.idFROM user u, (SELECT id, tree FROM user WHERE id IN (30, 59, 58, 57, 56, 60, 61, 62, 63)) a WHERE u.tree LIKE CONCAT('1,', a.id) ORDER BY u.id ASC
tree列的数据为:
1
1
1,30
1,59
1,59,100
....
要查出(1,*)的数据,这个SQL要怎么优化?
[解决办法]explain
或者 建索引 ,优化
[解决办法]SELECT id FROM user WHERE SUBSTR(tree,3,IF(locate(',',tree,3) > 0,locate(',',tree,3)-3,length(tree)-2)) IN (30, 59, 58, 57, 56, 60, 61, 62, 63)
这样可以吗?
[解决办法]模糊查询的优化不了
[解决办法]创建两个单独的索引
(id)
(tree)
[解决办法]id,tree创建单独索引。