0
String sqlStm = "SELECT * FROM TableName WHERE TableName MATCH '?'";
               pst.setString(1, keyword.getText());

我正在对我的数据库进行全文搜索。当我使用上面的它不执行 sql 语句。但是,如果我要更改程序并给出一个匹配的值......

  String sqlStm = "SELECT * FROM TableName WHERE TableName MATCH 'technology'";

程序执行。但我希望搜索基于keywordJTextfield 中输入的文本。第一行的格式是否正确。确实MATCH支持pst.setString()。正确的说法应该是什么。

4

2 回答 2

2

删除参数周围的单引号,它将参数转换为值。参数 placeolder?不应用单引号括起来。

String sqlStm = "SELECT * FROM TableName WHERE TableName MATCH ?";
pst.setString(1, keyword.getText());
于 2013-01-12T10:49:49.263 回答
0

这个怎么样?

SELECT * FROM TableName WHERE TableName  LIKE '%^technology$%'

或者

SELECT * FROM TableName WHERE TableName REGEXP '^\\technology$'

我真的找不到任何说 SQliteLikeregexp行为与 MySQL 不同的文章,所以......你可以试一试。如果有什么不同,也请分享。

于 2013-01-12T11:06:58.190 回答