Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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
包含以短语开头的整词的字段内容的SQL查询_Sql_Ruby On Rails_Meta Where - Fatal编程技术网

包含以短语开头的整词的字段内容的SQL查询

包含以短语开头的整词的字段内容的SQL查询,sql,ruby-on-rails,meta-where,Sql,Ruby On Rails,Meta Where,我正在尝试编写一个SQL查询来获取字段中包含多个关键字的行。查询的用途是获取使用jQuery实现的自动补全器函数的结果 现在,自动完成可以工作了,但我的结果将包括其特定字段中的内容包含查询的每一行。例如,如果我输入短语“ar”,我的结果将包括汽车、吉他、树皮等 我只想返回以短语开头的结果,因为用户很可能不会键入单词中间的随机片段。我可以使用Model.where(:name=~“{params[:q]}%”)[我正在使用meta\u wheregem]获取第一个单词以查询开头的所有行 但是,我还

我正在尝试编写一个SQL查询来获取字段中包含多个关键字的行。查询的用途是获取使用jQuery实现的自动补全器函数的结果

现在,自动完成可以工作了,但我的结果将包括其特定字段中的内容包含查询的每一行。例如,如果我输入短语“ar”,我的结果将包括汽车、吉他、树皮等

我只想返回以短语开头的结果,因为用户很可能不会键入单词中间的随机片段。我可以使用
Model.where(:name=~“{params[:q]}%”)
[我正在使用
meta\u where
gem]获取第一个单词以查询开头的所有行

但是,我还想返回字段中第二个单词以查询字符串开头的行,即使第一个单词不是

例如,对于行“black dog”和“dog food”,查询字符串“do”应返回这两行,而查询字符串“do”不应返回“undone”

我应该如何为这样的搜索编写SQL查询

Model.where( (:name =~ "#{params[:q]}%") | (:name =~ "% #{params[:q]}%") )

此结构仅适用于插件

Regex支持取决于每个数据库供应商和版本…此Regex的相似性是因为meta_where plugin-当它到达数据库时,它会在类似的查询中转换