【问题标题】:order by result search?按结果搜索排序?
【发布时间】:2011-08-17 20:06:54
【问题描述】:

如果在数据库中有词nice car, nice, nice, nice car 并且我们搜索词niceORDER BY(列出)那些喜欢:nice, nice, nice car, nice car 或者如果搜索词nice car ORDER BY(列出)喜欢:nice car, nice car, nice, nice?

  • 数据库中的单词:nice carnicenicenice car
  • 不错 => nice, nice, nice car, nice car
  • 好车 => nice car, nice car, nice, nice

我的查询:

$find = $this->input->post('find');
    $where  =   "name LIKE '%$find%' OR 
            star LIKE '%$find%' OR
            address LIKE '%$find%'";
$query = $data['results'] = $this->db->query("SELECT @rownum:=@rownum+1 rownum, t.*
        FROM (
        SELECT *
        FROM my_table
        WHERE 
            $where
        ORDER BY id desc
        LIMIT $offset, $coun_page       
        ) t,
        (SELECT @rownum:=0) r");

【问题讨论】:

  • 如果您搜索“nice car”这个词,select 语句将不会返回任何只是“nice”的记录

标签: php mysql sql codeigniter


【解决方案1】:

MySQL 不是搜索引擎。我强烈建议使用实际用于此任务的东西(例如 Sphinx、Solr 或 Lucene)。

【讨论】:

  • Sphinx, Solr, or Lucene -> 这些是什么?请给我进一步解释,并举例
  • 在浏览器地址栏输入www.google.com,屏幕中间会出现一个魔术框。在那里输入Solr,然后点击搜索。今天的技术可以做到的事情令人惊叹。
猜你喜欢
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 2011-10-09
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 2013-08-19
相关资源
最近更新 更多