0
String x=jTextField1.getText();

データベースに接続した後のクエリは次のとおりです。

String query="INSERT INTO student(A) VALUES('"+a+"') where date=' " +x+ " ';";

stmt.executeUpdate(query);

*a は文字 P が割り当てられた文字列です。

私が得ているエラーは「....mysql構文を確認してください....date = '" + x'"に対応しています; "

テキストフィールドに入力された日付をmysqlの「日付」列の日付と比較したいのですが、それが正しい場合、「a」値(P)は、入力された日付と同じ行の列Aに書き込まれる必要があります...

助けてください...

ありがとうございました...

4

1 に答える 1

1

一重引用符の前後にスペースがあります。

さらにdate、SQL キーワードでもあるため、フィールド名として使用しない方がよいでしょう。あなたは書くことができます

`date`

添加

申し訳ありませんが、間違いに気付きました (date新しいレコードを挿入しているため、フィールドを照会することはできません)。どちらかの意味:

String query = "INSERT INTO student(A) VALUES('P') WHERE CURRENT_DATE() = '2012-05-09'";

またはdateフィールドであり、別のフィールドを設定したいだけです:

String query = "UPDATE student SET A = 'P' WHERE `date` = '2012-05-09'";

新しいレコードを同じテーブルに挿入する

これをすぐに行うことは許可されていないため、一時テーブルを使用する必要があります。

CREATE TEMPORARY TABLE tmp (A VARCHAR(1));

INSERT INTO tmp (A) 
SELECT 'P' FROM student WHERE dt = '...';

INSERT INTO student(A) 
SELECT A FROM tmp;

DROP TABLE tmp;
于 2012-05-07T15:24:31.720 に答える