我有一个表,其中有一列“名称”(varchar)
我想获取名称以“a”、“b”、“c”、“d”、“e”或“f”开头的所有行。
我构建了如下查询:
WHERE LEFT(u.name, 1)='a' OR LEFT(u.name, 1)='b' OR LEFT(u.name, 1)='c' OR LEFT(u.name, 1 )='d' OR LEFT(u.name, 1)='e' OR LEFT(u.name, 1)='f'
有没有更好的方法?可以使用正则表达式吗?
假设我必须针对更大范围(A 到 M)执行此操作会减慢查询速度吗?
最佳答案
尝试使用 IN
WHERE LEFT(u.name, 1) IN ('a', 'b', 'c', 'd', 'e', 'f')
通过这种方式,您可以定义任何您想要的起始字符,即使它不是按顺序排列的。
关于mysql - SQL 查询以获取以 A 或 B 或 C.. 到 F 开头的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16361520/