在 SQL 中的 ENUM 上使用 ILIKE

cfa*_*t10 2 sql postgresql enums

在 Web 前端搜索中,我希望用户能够输入“星期三”、“星期三”、“星期三”等来选择星期几。鉴于为一周中的几天设置的枚举('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'),是否可以对值 ( WHERE day ILIKE x)使用 ILIKE 比较?我无法做任何事情,也没有通过谷歌找到任何东西。

Bli*_*ous 5

尝试投射到文本:

SELECT * FROM table_name where enum_column::text ILIKE 'Mon%';
Run Code Online (Sandbox Code Playgroud)

完整示例:

CREATE TYPE DAY AS ENUM ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');

CREATE TABLE test (t1 DAY);

INSERT INTO test VALUES ('Monday')

SELECT * FROM test where t1::text ILIKE 'Mon%';
Run Code Online (Sandbox Code Playgroud)