SQL 不区分大小写的 IN 搜索

Tos*_*shi 3 sql sql-like

我有这个"Table"包含内容的表格:

+--------+
| Serial |
+--------+
| d100m  | <- expected result
| D100M  | <- expected result
| d200m  | <- expected result
| d300L  |
| D400R  |
+--------+
Run Code Online (Sandbox Code Playgroud)

存储了大小写不准确的序列号。

目前我正在选择那里,声明如下

SELECT Serial FROM Table WHERE Serial LIKE 'D100M' OR Serial LIKE 'D200M';
Run Code Online (Sandbox Code Playgroud)

但是没有更简单的方法,而不是OR Serial LIKE OR Serial LIKE OR Serial LIKE我必须比较大约 30 个数字。

像这样的东西

SELECT Serial FROM Table WHERE Serial LIKE IN ('D100M', 'D200M')
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 7

最简单的方法是:

SELECT Serial 
FROM Table 
WHERE upper(Serial) in ('D100M', 'D200M');
Run Code Online (Sandbox Code Playgroud)

但是,这不会在serial列上使用索引。

因此,如果性能是一个问题,您需要在upper(serial).