2012-01-22 3 views
0

私はmysqlクエリのカラム名として 'time' wordを使用できません。
これは私のクエリ・コードである:(が動作しない)私はmysqlクエリで '時間'単語を使用できませんか?

UPDATE ip_p SET deger = '-1' TIME = '123' WHERE ip = '12' AND premium = '1' 

エラーは次のとおりです。

#1064 - あなたのSQL構文でエラーが発生しています。 が 近い「時間=」123' WHERE IP = 『12』 ANDプレミアム= 『を使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認してください1』」行で1

しかし、このコード作業中です:

UPDATE ip_p SET deger = '-1' WHERE ip = '12' AND premium = '1' 

私の列名を変更する必要がありますか?

答えて

3

1)あなたは)deger = '-1'

2の後に昏睡(、)を逃しているあなたはそれを試してみてください)、クエリのスペル(

正しい他の可能性のあるエラーを防止するために) `(バッククォートの中にTIMEを囲むことがあります。?

0123を:コメントへの対応
UPDATE ip_p SET deger = '-1', `TIME` = '123' WHERE ip = '12' AND premium = '1' 

UPDATE

1でdeger列を減少させるための

正しいクエリは次のようになります。

UPDATE ip_p SET deger = deger-1, `TIME` = '123' WHERE ip = '12' AND premium = '1' 

あなただけにそれを設定する必要がある場合は-1、その後ん:

UPDATE ip_p SET deger = -1, `TIME` = '123' WHERE ip = '12' AND premium = '1' 

はまた、(単一引用符でその構文を注意してください')は、文字列(varachar(...)の列など)でのみ使用する必要があります。間違った番号の場合番号を指定する必要がある場合は、引用符を付けずにそのまま入力します。私はdegerカラム(これは何かを減算したい場合は数値ですが)のためにこれを変更しましたが、他のタイプのものは変更しませんでした。 TIMEippremiumも数字の場合は、値から引用符も削除する必要があります。

+0

非常に感謝..と私はdeger列を-1に変更したいが、このコードは操作を行います。 deger列が1の場合、このクエリは0に変更されます。 – Joseph

+0

いいえ。あなたが持っているクエリは、カラム 'deger'を厳密-1に変更します。私は一瞬で私の答えを更新します。 –

+0

しかし、私の列は整数列です。 – Joseph

1

あなたはバッククォートを使って、キーワード「時間」を逃れることができます。

UPDATE ip_p SET deger = '-1', `TIME` = '123' WHERE ip = '12' AND premium = '1' 

私はあなたにも、あなたがここに取得しているエラーの原因である可能性があり、カンマを、低下したと考えています。しかし、一般的に、MySQLにとって特別なカラム名を持っているなら、それをエスケープしてください。

+0

と私は-1 deger列を変更したいが、このコードは、操作を行います。deger列が1の場合、このクエリは0に変更されます。 – Joseph

+0

@Joseph: 'SET deger = -1'を試してください。何を持っているのかは、整数ではなく文字列に設定されます。 – Borealid

+0

@Borealid ..構文エラー.. – Joseph

0

バックスティックで名前を囲む必要があります。`。一般的な規則として、は常にで、列名を囲んでいます。

0

あなたはTIMEの前にカンマが欠落している:非常に感謝..

UPDATE ip_p SET deger = '-1', TIME = '123' WHERE ip = '12' AND premium = '1' 
          ^
関連する問題