假设我们在一个表中有4个项目:

  • 米歇尔·乔丹
  • 汤姆·马克·乔丹
  • 乔丹·约翰
  • 亚当·乔丹·罗伯特

  • 搜索词是“ Jordan ”,我如何获得按字母顺序排序但搜索词首先匹配的结果,如下所示:
  • 约旦 John
  • Michel 约旦
  • 汤姆乔丹罗伯特
  • Adam Mark 约旦

  • 我正在使用此代码,但没有得到我想要的:
    $this->db->select('id, name');
    $this->db->from('users');
    $this->db->like('name', $search_term);
    $this->db->order_by('name', 'asc');
    $query = $this->db->get();
    

    最佳答案

    试试这个:

    SELECT id, fullName
    FROM test
    ORDER BY FIND_IN_SET('Jordan', REPLACE(fullName, ' ', ',')), fullName;
    

    检查此链接SQL FIDDLE DEMO

    输出
    | ID |          FULLNAME |
    |----|-------------------|
    |  1 |       Jordan John |
    |  2 |     Michel Jordan |
    |  4 | Tom Jordan Robert |
    |  3 |  Adam Mark Jordan |
    

    关于mysql - 如何使用CodeIgniter ActiveRecord按字母顺序对MySQL结果进行排序,但搜索条件是否匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14241167/

    10-12 17:09