私は、次のUPDATEクエリを実行すると、私は奇妙な '切り捨て、誤ったINTEGER値' というエラーを取得しています:MySQLの '切り捨てられた間違ったINTEGER値'
update tbl
set projectNumber = right(comments, 7)
where createdBy = 'me'
and length(CONVERT(right(comments, 7), SIGNED INTEGER)) = 7
and CONVERT(right(comments, 7), SIGNED INTEGER) > 0
and CONVERT(right(comments, 7), SIGNED INTEGER) is not null
and createdOn > '2011-01-31 12:00:00'
and projectNumber is null
projectNumberはVARCHAR(10)です。
ストレートセレクトとして実行するとエラーが発生せず、結果が期待どおりに表示されます。何か案は?基本的に私はprojectNumberフィールドを更新しようとしていますが、インポートされたノート内のコメントの終わりが7文字の数字です(projectNumberはではありません)。 7数値なので、フィールドはvarchar(10)です。
興味深いです。エラーコード1292(あなたの例のようなものです)とは言いますが、アップデートが実行されていないことを確認できます。アップデートの警告を中止する設定が必要ですか?私は掘り続けます。 –
あなたのサーバーは 'TRADITIONAL' SQLモードで動作していると思われます。これはすべての警告をエラーに変換します。 http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_traditional – Mchl
権利。私は実際に正規表現を使用することにしました(そして、コメント(7)REGEXP '^ [0-9] + $')、変換ナンセンスを忘れてしまいました。うまく働いた。助けてくれてありがとう。 –