现在我有一个看起来像这样的查询
SELECT id
FROM products
WHERE products.details->'make' = ?
OR products.details->'model' = ?
OR products.details->'year' = ?
我想根据匹配的 where 语句的数量对结果进行排序,例如,如果查询中使用的三个词是 ford、f150、1985,我会得到两个结果。一个包含所有三个术语(1985 年的福特 f150),第二个结果只有两个匹配项(1991 年的福特 f150)。
有没有办法让我用 postgreSQL 9.3 做到这一点,或者我需要使用我的应用程序层来计算有多少匹配项?
单程:
反转逻辑更简单一些:
NULL
结果FALSE
会增加价值(并降低排名)。