我如何仅根据小写设置索引?
即使实际字段包含大写和小写字母。
此外,我可以运行查询并仅返回小写索引值吗?
答案 0 :(得分:50)
您可以创建索引并将字段转换为大写或小写。然后当你进行查询时,你可以做同样的转换,它会做正确的事情。
所以:
CREATE UNIQUE INDEX lower_case_username ON users ((lower(username)));
然后查询同样的事情:
SELECT username FROM users WHERE lower(username) = 'bob';
答案 1 :(得分:8)
根据the docs,你可以这样做:
CREATE UNIQUE INDEX lower_title_idx ON films ((lower(title)));
答案 2 :(得分:3)
CREATE UNIQUE INDEX my_index_name ON my_table (LOWER(my_field));
答案 3 :(得分:0)
您也可以将其用于通配符搜索:
CREATE INDEX IF NOT EXISTS foo_table_bar_field ON foo_table(lower(username))
查询如下:
SELECT * FROM foo_table WHERE lower(username) like 'bob%'