字符串大小写敏感性
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
大多数数据库允许指定 COLLATION
,这允许重新定义字符串值的排序。默认情况下,ASCII、ISO 或 Unicode 编码应用于字符数据,并根据相应的编码应用排序。
然而,有时某些查询希望忽略编码的某些部分,例如将大写和小写字符同等对待,使得 ABC = abc
,或者使得 ABC, jkl, XyZ
是一个有序的字符串列表(不区分大小写)。
对于这些临时的排序用例,大多数人求助于使用 LOWER()
或 UPPER()
,如下所示:
-- Case-insensitive filtering: SELECT * FROM BOOK WHERE upper(TITLE) = 'ANIMAL FARM' -- Case-insensitive ordering: SELECT * FROM AUTHOR ORDER BY upper(FIRST_NAME), upper(LAST_NAME)
// Case-insensitive filtering: create.selectFrom(BOOK) .where(upper(BOOK.TITLE).eq("ANIMAL FARM")).fetch(); // Case-insensitive ordering: create.selectFrom(AUTHOR) .orderBy(upper(AUTHOR.FIRST_NAME), upper(AUTHOR.LAST_NAME)) .fetch();
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的意见!