返回结果,匹配mySQL中存储过程的第一个字符

时间:2014-04-20 07:10:13

标签: mysql stored-procedures

我已将DocumentListener添加到JTextField,searchField,以便每次用户键入或删除searchField中的字符时都会调用存储过程。

我希望存储过程返回行,其中列中的值与键入的字符及其顺序相匹配。假设我有一个table.column FirstName,其值为#34; 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;

然而,它只会让所有人以“#Pe;"”的名义返回所有人,但不会以#" P"," Pe&#开头的所有人返回34;等等。有什么建议?提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用:

WHERE FirstName LIKE CONCAT(something, "%")

在开头留出%,因此必须完全匹配开头。