请问,优化一个SQL语句!

请教,优化一个SQL语句!!!

SQL code


  
SELECT 
  u.id
FROM
  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创建单独索引。

请问,优化一个SQL语句!

相关文章:

你感兴趣的文章:

标签云: