首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

请问,优化一个SQL语句!

2012-06-14 
请教,优化一个SQL语句!!!SQL codeSELECTu.idFROMuser u,(SELECTid,treeFROMuserWHERE id IN (30, 59, 58,

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

SQL code
SELECT   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创建单独索引。

热点排行