2013-01-21 41 views
3

我有一长串的公司名称,但我只想得到结果集,结果集只会返回那些以字母A-E开头的公司。两个字母之间的MySQL搜索

这可能吗?

+0

你尝试过什么?表结构?由于缺乏信息,很有可能得到结果但无法回答。 – Namphibian

回答

4

使用try LIKE

SELECT * 
FROM tableName 
WHERE CompanyName LIKE 'A%' OR 
     CompanyName LIKE 'B%' OR 
     CompanyName LIKE 'C%' OR 
     CompanyName LIKE 'D%' OR 
     CompanyName LIKE 'E%' 

或REGEXP

SELECT * 
FROM tableName 
WHERE CompanyName REGEXP '^[A-E]'; 

OTHER(S)

+0

目前还不清楚使用此解决方案是否可以使用CompanyName上的索引 –

0
SELECT * FROM mytable WHERE company_name < 'F'; 
2

你(也)用简单的字符串比较它做的;

SELECT * 
FROM Companies 
WHERE CompanyName >= 'a' 
    AND CompanyName < 'f'; -- to be sure to get _all_ companies on 'E' 

Simple SQLfiddle

+0

似乎这是列出的最简单的方法,用于提供一系列字母。 – foochow

1

公司名称以A开头的公司名称,E采用LEFT销售。如果您需要结束,那么您也可以使用RIGHT

SELECT * 
FROM YOURTABLE 
WHERE LEFT(CompanyName,1) IN ('A', 'E') 
; 
+0

@韦斯利检查了一下。它使用'IN'运算符和'LEFT'。基于'EXPLAIN PLAN',你可以选择最适合你的需求:) – bonCodigo

0
SELECT name FROM TABLE_NAME WHERE name BETWEEN 'a' AND 'e' 

OR

SELECT Name FROM Employees WHERE Name REGEXP '^[A-E].*$'