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

データベースで全文検索を行っています。上記を使用すると、SQLステートメントが実行されません。しかし、プログラムを変更して、このように一致する値を指定すると...

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

プログラムが実行されます。keywordしかし、 JTextfieldに入力されたテキストに基づいて検索したいと考えています。最初の行の正しいフォーマットです。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$'

SQliteLikeregexpMySQL とは動作が異なるという記事を実際に見つけることができなかったので、試してみてください。異なる点があれば、それも共有してください。

于 2013-01-12T11:06:58.190 に答える