我有一个查询,它根据搜索词给出一个结果。
我正在使用postgre的posix搜索(~*):https://www.postgresql.org/docs/8.3/functions-matching.html#functions-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",
}
]
}
因此,第一个结果以姓氏出现:ojeda
第二个结果以爱德华多的名字出现了
第三个结果出现在姓paedes中
这是我的(简化)查询:
SELECT u.name, u.last_name FROM user u WHERE u.name ~* :searchTerm OR u.last_name ~* :searchTerm
我认为eduardo是我搜索的最准确的结果,因为我是按照“ed”的顺序搜索的(可能是开头有ed的姓),所以我想把eduardo作为我的第一个结果,有什么方法可以做到这一点吗?
我知道我可以使用like%:searchterm,但我想在整个字符串中搜索,但会以预定义的顺序得到结果。
谢谢您!
1条答案
按热度按时间t2a7ltrp1#
添加
ORDER BY
条款:这依赖于
FALSE < TRUE
.