2011-03-27 86 views
1

我試圖在php中編寫一個查詢,它將從部分匹配字符串的數據庫中選擇一行。SQLite選擇具有相同條件的查詢

更好的通過一個例子說明:

說我的數據庫中有一個字段名爲numberString,與價值「ABCD」。我想寫一個查詢,給定「123abcd」,將返回數據庫的該行的字段。

SELECT mood 
    FROM USERS 
WHERE numberString like '%$giveNumberString'" 

$giveNumberString是函數的參數(即我想查找字符串)

但我認爲這兩個numberString'%$givenNumberString'"應該像其他的方式,以各地的查詢作爲工作預期。有沒有辦法做到這一點?


好表看起來是這樣的:

id | username | numberString | mood 
------------------------------------- 
1 | myUsrNam | abcd   | happy 

現在我想,給予 「123abcd」,以獲取該人的心情。換句話說,要匹配abcd的123abcd。

+1

我很難理解你的問題。你能發表一個示例表格內容,以及你想要檢索的內容嗎? – Mat 2011-03-27 18:26:18

+0

@Mat看看我編輯的問題!乾杯! – mixkat 2011-03-27 18:31:00

+0

如果[全文搜索](http://www.sqlite.org/fts3.html)可以滿足您的要求,這是值得商榷的。期望用戶學習更好地搜索是沒有錯的 - 垃圾進入,垃​​圾進出。 – 2011-03-27 18:34:44

回答

4

我不知道這是一個合法的語法,但讓我試試猜猜:你嘗試過

SELECT mood from users where '$giveNumberString' like '%' || numberString || '%' 

+3

SQLite使用'||'作爲連接運算符。用'||'替換'+'es,這應該起作用。雖然我認爲你只需要第一個'%',而不是第二個。 – Martijn 2011-03-27 18:39:45

+0

@Martijn,謝謝你指出這一點。我編輯了答案。 – 2011-03-27 18:41:03

+0

@Martijn:是的,我雖然'+'無效......編輯答案看起來不錯。 – Mat 2011-03-27 18:48:11