Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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 POSIX(~*)用Postgre搜索。结果顺序_Sql_Postgresql_Search_Sql Order By_Posix - Fatal编程技术网

Sql POSIX(~*)用Postgre搜索。结果顺序

Sql POSIX(~*)用Postgre搜索。结果顺序,sql,postgresql,search,sql-order-by,posix,Sql,Postgresql,Search,Sql Order By,Posix,我有一个查询,它根据搜索词给我一个结果 我正在使用postgre(~*)的POSIX搜索: 例如,如果我搜索“ed” 结果会是这样的: { "success": true, "data": [ { "name": "Victoria", "last_name": "Ojeda Acu–a",

我有一个查询,它根据搜索词给我一个结果

我正在使用postgre(~*)的POSIX搜索:

例如,如果我搜索“ed

结果会是这样的:

{
    "success": true,
    "data": [
        {
            "name": "Victoria",
            "last_name": "Ojeda Acu–a",
        },
        {
            "name": "Eduardo Daniel",
            "last_name": "Ordo–ez",
        },
        {
            "name": "Ludmila Daiana",
            "last_name": "Paredes Sosa",
        }
      ]
}
  • 因此,第一个结果ed以姓氏出现:ojeda
  • 第二个结果以名称出现:eduardo
  • 第三个结果以姓氏出现:Paedes
这是我的(简化)查询:

<> P>我认为<强> Ed <强> UARDO是我搜索的最准确结果,因为我按顺序查找<强> ED (它也可能是ED的名字),所以我想把爱德华多作为我的第一个结果,有什么办法来实现吗? 我知道我可以使用LIKE%:searchTerm,但我想搜索整个字符串,但要以预定义的顺序获得结果


谢谢大家!

添加一个
订单依据
子句:

ORDER BY starts_with(u.name, :searchTerm) DESC

这依赖于
FALSE

我尝试过,但我得到了这样的结果:{“从用户系统中选择u.name,其中u.name~*'ed'顺序为NOT(u.name~*'ed')”:[{“name”:“Eduardo Andre”},{“name”:“Gabriela Edith”},{“name”:“Educaión Física”},{“name”:“Andrea Soledad”},{“name”:“Soledad”},{“name”:“Soledad”},{“name”:“name”:“Federico”},{“name”:“David Edgardo”},{“name”:“Alfredo”},{“name”:“Anahi Soledad”},{“name”:“Edward”},{“name”:“Pamela Mercedes”}首先,您更改了
WHERE
条件。其次,请准确描述所需的顺序。我只是简化了WHERE,而不是name和lastname。我希望所有名称都以Ed(我的搜索词)开头首先,然后是其他的。所以我会得到一个更准确的搜索顺序。我已经修改了答案。
ORDER BY starts_with(u.name, :searchTerm) DESC