Sql POSIX(~*)用Postgre搜索。结果顺序
我有一个查询,它根据搜索词给我一个结果 我正在使用postgre(~*)的POSIX搜索: 例如,如果我搜索“ed” 结果会是这样的: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",
{
"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
谢谢大家! 添加一个
订单依据
子句:
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