You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用WHERE与LIKE子句查询film表中R级影片?及SQL报错处理

问题解决:PostgreSQL枚举类型字段使用LIKE查询的错误与解决方案

错误原因

你遇到的ERROR: operator does not exist: mpaa_rating ~~ unknown错误,是因为film表的rating字段是PostgreSQL枚举类型(mpaa_rating),而LIKE运算符仅支持字符串类型的比较。直接用字符串字面量和枚举类型字段比较时,PostgreSQL找不到对应的运算符,因此报错。

查询R级影片的正确方法

方法1:精确匹配(推荐,性能更高)

因为R级是枚举类型中的明确值,直接使用相等运算符=即可,不需要LIKE:

SELECT rating, title
FROM film
WHERE rating = 'R';

方法2:显式类型转换配合LIKE(适用于模糊匹配场景)

如果确实需要用LIKE(比如模糊匹配以特定字符开头的枚举值),需要先将枚举类型转换为字符串类型,可用::text语法或CAST()函数:

-- 用::text转换类型
SELECT rating, title
FROM film
WHERE rating::text LIKE 'R';

-- 或者用CAST函数
SELECT rating, title
FROM film
WHERE CAST(rating AS text) LIKE 'R%';

内容的提问来源于stack exchange,提问作者Vinoth.N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:16:03