2013-01-21 42 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].*$'