2013-12-09 22 views
1

我有一個包含兩列(問題和答案)的MYSQL數據庫表(名爲QuestionAnswer)。在MYSQL中查找數據的縮寫

「答案」欄中的數據格式爲「EPL的完整格式爲英格蘭超級聯賽」或「此句子沒有縮寫」。

我需要檢查答案列中是否存在任何縮寫詞,即我想查找全部爲大寫字母的所有單詞。我需要查詢所有與縮寫像EPL列。誰能建議如何?

+0

你可以像'搜索'一樣使用'LIKE'%EPL%' –

+0

。請參閱http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html –

+0

但問題是我不知道所有縮寫列表。我想查找所有大寫的單詞。對不起,如果我沒有提到這個問題。 – Punit

回答

2

假設的縮寫是「全部使用大寫字母詞」,試試這個:

SELECT * FROM QuestionAnswer 
WHERE answers REGEXP BINARY '\s*[A-Z]{2,}\s*' 

工作演示:http://sqlfiddle.com/#!2/6e59d/9

「REGEXP不區分大小寫,與二進制使用時除外字符串」。參考:http://dev.mysql.com/doc/refman/5.1/en/regexp.html

+0

'\ b'在MySQL中無法正常工作,並且還會捕獲單個高位字符,例如「我在這裏」 - 這裏沒有縮寫,明顯是 –

+0

@AlmaDo如何使用'BINARY '區分大小寫? –

+0

是的,如果原始字符串有另一個排序規則,它會起作用,但會導致[強制](http://dev.mysql.com/doc/refman/5.1/en/charset-collat​​ion-expressions.html)。通常情況下,我記得,這不會是問題,但我仍然不推薦在一般情況下。 –