2011-01-11 66 views
3

我有一個公司名稱列表,並希望顯示以特定字符開頭的所有名稱。例如,d讓MySQL忽略LIKE條件開始的「The」?

所以查詢是

SELECT * FROM company WHERE name LIKE 'd%' 

但我也想與啓動公司「的」如此

SELECT * FROM company WHERE name LIKE 'd%' OR name LIKE 'The d%' 

但現在有點棘手,當我們去「T」我想刪除所有以'The' 開頭的字詞,同時保留以't'開頭的其他字詞(並且還保留類似'The Truffle House'的字詞之後'''以't'開始)。

任何想法?想保持在MySQL中的邏輯...

回答

1
SELECT * 
FROM company 
WHERE (name LIKE '?%' AND NOT name LIKE 'The %') 
     OR name LIKE 'The ?%' 
+0

很確定OP只是用`d`作爲例子。他們說它適用於`d`和所有其他字母,除了't`外,他們希望應用稍微不同的邏輯。 – 2011-01-11 18:37:40

1

嘗試:

SELECT * FROM company WHERE name regexp '^(The)d' 
0

感謝我只是選擇了這種

SELECT * 
FROM company 
WHERE (name LIKE '?%' AND NOT name LIKE 'The %') 
     OR name LIKE 'The ?%' 

t我有答案剛剛做了一個長長的清單NOT LIKE所以

AND (company_name LIKE 'The%t' OR company_name LIKE 't%') AND company_name NOT LIKE 'The a%' AND company_name NOT LIKE 'The b%'等....