Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails SQL查询列在哪里?_Sql_Ruby On Rails 3_Autocomplete - Fatal编程技术网

Rails SQL查询列在哪里?

Rails SQL查询列在哪里?,sql,ruby-on-rails-3,autocomplete,Sql,Ruby On Rails 3,Autocomplete,我正在Rails中编写一个自动完成查询,它返回以键入内容开头的项。我如何将其扩展到包含一个句子中的所有单词 例如: 项:从控制台添加记录 如果用户搜索“console”,我如何将其包括在结果中,并且仍然保留第一个条件 我的查询 SubCategory.where("name LIKE ?", "#{params[:q]}%") 因此,如果输入是bla,那么您需要 以bla开头的名称 和后面有空格和bla的名称 这将是: YourModel.where("name LIKE ? OR nam

我正在Rails中编写一个自动完成查询,它返回以键入内容开头的项。我如何将其扩展到包含一个句子中的所有单词

例如:

项:从控制台添加记录

如果用户搜索“console”,我如何将其包括在结果中,并且仍然保留第一个条件

我的查询

SubCategory.where("name LIKE ?", "#{params[:q]}%")
因此,如果输入是bla,那么您需要

  • 以bla开头的名称
  • 和后面有空格和bla的名称
这将是:

YourModel.where("name LIKE ? OR name LIKE ?", "#{term}%", "% #{term}%")

谢谢Thomas,这很好用,但是如果我想在结果中同时包含这两个方面呢。假设我有5条以bla开头的记录,我想先显示它们,但在它们下面我还想包括那些不以bla开头但有空格的记录,然后包括bla。这能在多个层次上发挥作用吗?例如,名称空间名称空间bla如果查看SQL,您将看到它包含
。所以它将匹配其中一个,或者另一个,或者两者都很好。好吧,对结果进行排序,这样如果满足第一个条件,它就会首先显示出来,怎么样?请参阅添加到描述中的pic。我非常确定添加类似
.order(“ASC位置(?在您的_models.name中)”,term)
的内容应该可以实现这一目的。