postgresql 如何在多个LIKE语句上设置BETWEEN条件?

yfwxisqw  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(170)

我正在尝试提供电影标题,以字母“S”和“T”开头,重置成本为15.99至20.99。
我尝试使用此代码,但它仍然返回一些数据低于15.99请帮助。
第一个月
Here's the result of running the code, still returns data lower than 15.99
尝试搜索其他方式来使用喜欢与在不或也许这是问题,但我看到一个帖子说,在是不可用的喜欢。

eoigrqb6

eoigrqb61#

您的直接问题是运算符优先级。ANDOR之前绑定-如已注解。可以用括号固定:

SELECT title, length, replacement_cost
FROM   film
WHERE (title LIKE 'S%' OR title LIKE 'T%')
AND    replacement_cost BETWEEN 15.99 AND 20.99

字符串
你可以简化。然后你不需要OR,因此也没有括号:

WHERE  title LIKE ANY ('{S%, T%}')


虽然只匹配前缀,但运算符^@更好。需要Postgres 11;在Postgres 15中得到了很大的改进:

WHERE  title ^@ ANY ('{S,T}')


请参阅:

相关问题