【发布时间】:2017-12-02 06:12:31
【问题描述】:
基本问题。在 SQL 中,有没有更快的方法来使用 OR 运算符在 SELECT 语句中列出条件?
目前我在我的语句中写了多个条件,如下所示:
SELECT * FROM customers WHERE City = 'Berlin' OR City = 'London' OR
City = 'Dublin';
有没有更短的方法可以做到这一点,而不必为每个条件写 'City =',也许?
【问题讨论】:
基本问题。在 SQL 中,有没有更快的方法来使用 OR 运算符在 SELECT 语句中列出条件?
目前我在我的语句中写了多个条件,如下所示:
SELECT * FROM customers WHERE City = 'Berlin' OR City = 'London' OR
City = 'Dublin';
有没有更短的方法可以做到这一点,而不必为每个条件写 'City =',也许?
【问题讨论】:
使用IN:
SELECT c.*
FROM customers c
WHERE c.City IN ('Berlin', 'London', 'Dublin');
除了更简洁之外,这对于长列表也更有效。 MySQL 对值列表进行排序并对长列表使用二进制搜索——在大多数情况下比顺序搜索更有效。
【讨论】: