无法执行"喜欢"在java中查询

时间:2015-04-30 13:09:12

标签: java mysql swing

在MYSQL数据库中,我有一个表名搜索。 当我写这个查询时,它成功执行了。

"select * from 'search' where path like %overview%"

但是当我用java编写它时:

String query="SELECT path FROM `search` WHERE path like %?% ";
java.sql.PreparedStatement st=con.prepareStatement(query);
st.setString(1,textField.getText() );
ResultSet rs=st.executeQuery();

它无效并显示错误:

  

com.mysql.jdbc.exception.jdbc4.MySQLSystaxErrorException: you have an error in sql syntax; check the manual that corresponds to your Mysql server version for the right Syntax to use near '%'overview'%' at line 1

2 个答案:

答案 0 :(得分:4)

String query="SELECT path FROM `search` WHERE path like ? ";
java.sql.PreparedStatement st=con.prepareStatement(query);
st.setString(1,"%"+ textField.getText() + "%" );
ResultSet rs=st.executeQuery();

您可以尝试以上代码

答案 1 :(得分:0)

百分号是文字,如果你想在SQL文本中包含那些,并让MySQL将这些添加到你传入的值,你可以这样做:

String query="SELECT path FROM `search` WHERE path LIKE CONCAT('%',?,'%')";

另一种方法是从SQL文本语句中删除百分号

String query="SELECT path FROM `search` WHERE path LIKE ?";

然后将百分号添加/附加到您提供的值。