复杂的mysql搜索查询条件很少

时间:2011-11-09 13:22:26

标签: php mysql

我不知道这是否可行,但我已经搜索了用户,并且我想在每个打字后的字母上显示结果,所以我试图让搜索工作尽可能快,但我的野心也是我的知识很高。

我有users dbrelations (id, user_id, follower_id, status)我使用LEFT JOIN两次,首先是关注者,而不是跟随者。

所以我想做什么,我要把结果整理好,就像我首先想让那些用户关注并被追踪的人,而不仅仅是那些用户关注的人,而不是跟随用户的人,最后是其他人。我想将所有搜索限制为最多10行。如果有可能只在mysql中做某事?我已经在php中完成了这项工作,但这涉及到对数据库的许多查询。

如果有任何方法可以设置知道该行是什么条件,那么我也很有意思。

更新

我需要得到什么以及以什么顺序:

  

以下条件下的用户:

     
      
  1. 通过搜索查询&用户关注他们跟随他们。
  2.   
  3. 通过搜索查询&用户关注。
  4.   
  5. 通过搜索查询&关注用户的人。
  6.   
  7. 通过搜索查询
  8.         

    订单:

         
        
    1. 用户关注他们跟随他们。
    2.   
    3. 用户关注。
    4.   
    5. 关注用户的人。
    6.   
    7. 他人。
    8.         

      限制:0,10

我相信我无法简单地以特定的方式命令结果,所以我考虑使用子查询或更复杂的东西,但我的mysql知识太低,我不确定是否可以在一个查询,或者我只需要在每种条件下使用单独的查询。

1 个答案:

答案 0 :(得分:0)

我没有测试它,但我会尝试这样的事情:

select distinct u.* from users u, relations r where u.id = r.user_id or u.id = r.follower_id order by u.id = r.user_id