mysql - SQL 查询以获取以 A 或 B 或 C.. 到 F 开头的名称

标签 mysql sql

我有一个表,其中有一列“名称”(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/

相关文章:

mysql - 在使用 MyISAM 的 MySQL 中的 REPAIR TABLE 期间什么会导致数据丢失?

sql - 将 Nvarchar(max) 转换为 nvarchar 的最佳/最有效方法 (30)

java - 如何在java中将图像路径保存到sql数据库

sql - 如何使用 `=` 以外的其他运算符创建 DBIx::Class 连接表?

mysql - Node js无法连接到本地数据库

mysql - 如何使用Entity Framework 1和MySQL更新多对多相关对象?

mysql - 在 WHERE 子句中使用 CASE

mysql - 查询具有多个连接和每个表的多个计数的论坛

MySQL 使用 AND 和 OR 进行复杂查询

用于匹配两个表中的列的 SQL 查询