我的SQL请求返回以reserch文本开头的文本字段:
SELECT field1, field2 FROM mytable
WHERE field1 ILIKE 'ex%' OR UNACCENT(field2) ILIKE 'ex%'
另一个请求也是如此,但不一定以研究文本开头:
SELECT field1, field2 FROM mytable
WHERE field1 ILIKE '%ex%' OR UNACCENT(field2) ILIKE '%ex%'
我正在寻找一种方法来首先返回第一个请求的结果,然后是第二个请求的结果,如果可能的话,没有重复的结果,因为第二个请求也返回第一个请求的结果...
或者也许我们可以订购"从"开始首先,其余的(不是从开始)?
感谢您的帮助
答案 0 :(得分:2)
简单地在您like '%ex%'
处有一个查询,以返回所有行。然后添加ORDER BY
,首先返回like 'ex%'
行。
SELECT field1, field2 FROM mytable
WHERE field1 ILIKE '%ex%' OR UNACCENT(field2) ILIKE '%ex%'
ORDER BY field1 ILIKE 'ex%' OR UNACCENT(field2) ILIKE 'ex%' DESC