2014-04-20 24 views
0

我已經將一個DocumentListener添加到JTextField,searchField,以便每次用戶鍵入或刪除searchField中的字符時都會調用存儲過程。從mySQL中的存儲過程中匹配第一個字符返回結果

我希望存儲過程返回列中的值與字符及其順序中鍵入的行匹配的行。假設我有一個table.column FirstName,其值爲「Pete」。如果用戶輸入「P」,則應該返回「Pete」,如果用戶輸入「Pe」,則應該返回「Pete」等等。但如果用戶只輸入「e」,則不應返回「Pete」。我知道這裏可能存在性能問題,但該表不可能包含超過5000行,所以我認爲這不會成爲問題。

到目前爲止,我有這樣的事情:

CREATE PROCEDURE search (IN something VARCHAR(45)) 
BEGIN 
SELECT * FROM Folks 
WHERE FirstName LIKE CONCAT("%", something, "%") 
END; 

然而,它只返回每個人通過讓我們說「皮特」的名字,但沒有回報大家開始用「P」,「PE」和等等。有什麼建議麼?提前致謝!

回答

0

用途:

WHERE FirstName LIKE CONCAT(something, "%") 

之初離開了%,所以它必須匹配開始完全吻合。

+0

感謝您的回答。我可以看到它應該起作用,並且我也嘗試將過程中的where子句更改爲WHERE FirstName Like CONCAT(「p」,「%」)並且工作正常。但是,WHERE名字LIKE CONCAT(某些東西,「%」)不會給我相同的結果。我猜這意味着「錯誤」是在別的地方? –

+0

現在它突然工作! –

相關問題