我有这个表 "Table"
内容:
+--------+
| Serial |
+--------+
| d100m | <- expected result
| D100M | <- expected result
| d200m | <- expected result
| d300L |
| D400R |
+--------+
存储了大小写不准确的序列号。
目前我正在选择那里,声明如下
SELECT Serial FROM Table WHERE Serial LIKE 'D100M' OR Serial LIKE 'D200M';
但是没有比
OR Serial LIKE OR Serial LIKE OR Serial LIKE
更简单的方法了吗?我必须比较大约 30 个数字。像这样的东西
SELECT Serial FROM Table WHERE Serial LIKE IN ('D100M', 'D200M')
最佳答案
最简单的方法是:
SELECT Serial
FROM Table
WHERE upper(Serial) in ('D100M', 'D200M');
然而,这不会使用
serial
上的索引。柱子。因此,如果性能是一个问题,您需要在
upper(serial)
上创建索引。 .
关于SQL 不区分大小写的 IN 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782025/