如何使用" WHERE LIKE" SQL中的命令

时间:2015-02-20 00:56:24

标签: java sql derby

我正在尝试在程序中使用WHERE LIKE命令。

我的代码

String searchCriteria = searchTextField.getText();
String searchCriteria1 ="'"+"%" + searchCriteria + "%"+"'";\
String query = "select ID,Priority,recipient,Sender,Label,Subject from Messages where Message like = '" + searchCriteria1 + "'";
        PreparedStatement pst = connection.prepareStatement(query);
        ResultSet rs = pst.executeQuery();
        table.setModel(DbUtils.resultSetToTableModel(rs)); 

代码说明

1.此代码是什么来获取用户的输入。

2.创建一个包含搜索条件和"%"的字符串变量。条件的任何一方。

3.最后几行执行SQL查询。

我目前收到错误java.sql.SQLSyntaxErrorException: Syntax error: Encountered "=" at line 1, column 92.,并且不确定我的陈述是否有错。

它最有可能是非常愚蠢和小的东西,我希望你能帮忙。

谢谢

3 个答案:

答案 0 :(得分:0)

好像你在搜索条件中有两次单引号。

但是在这种情况下你需要使用带有绑定参数的预准备语句。

答案 1 :(得分:0)

您应该像这样使用PreparedStatement:

String searchCriteria = searchTextField.getText();
String query = "select ID,Priority,recipient,Sender,Label,Subject from Messages where Message like ?";
PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1, "%" + searchCriteria + "%");
ResultSet rs = pst.executeQuery();

答案 2 :(得分:0)

您可以将其放在查询本身并删除modulus(%)符号,而不是将equal(=)放入变量中。见下文:

String searchCriteria1 =" + searchCriteria + ";
String query = "SELECT ID,Priority,recipient,Sender,Label,Subject FROM Messages WHERE Message LIKE '%" + searchCriteria1 + "%'";