2013-10-02 92 views
1

我想選擇只在某個字段(名稱)中某個單詞開頭保存某些文本('one')的行。
例如:
1)名稱:命名一個檢查
2)名稱:名字anotherone檢查
我只需要行號1
我目前使用LIKE%一個%,得到這些結果(1和2行,然後我需要),然後檢查文本是否位於單詞的開頭,並保留我需要的結果。

有沒有辦法運行一個查詢,將根據特定的字符(讓我們說:「」)打破名稱字段中的值,然後檢查每個片斷,如果文本位於它的開頭?單詞開頭的搜索文本

+3

剛剛'LIKE'%1%'或者像'1%''怎麼樣? –

+0

Tnx克里斯汀。很簡單... –

回答

5

使用LIKE操作:SELECT * FROM table WHERE name LIKE 'one%'

(請不要使用兩側,因爲這%會發現ANYTHINGoneANYTHING

然而,如果單詞在句子的地方出現,你需要雙%: 添加一個空格,如下所示:LIKE '% one%'確保單詞STARTS與「one」相同。 如果需要是獨立的話,你可以使用LIKE '% one %'(然而,這將不匹配字段的開始或結束,這將在one test失敗。)

要繞過這個問題,您可以連接字段用開頭和結尾的空白:

... WHERE CONCATENATE(" ", CONCATENATE (field, " ")) LIKE '% one %'

這將匹配Theres oneone goes home甚至if there is one that goes home,但不someone is therehes done