0
UPDATE starfsfolk
SET starfsfolk.stada=2
WHERE starfsfolk.deild LIKE '%Hugbúnaðardeild%';

UPDATE starfsfolk
SET starfsfolk.stada=3
WHERE starfsfolk.deild LIKE '%Markaðsdeild%'

まさに私が使用しているコードです。

私はそれのさまざまな異なるバージョンを試しました(= "Markaðsdeild"またはLIKE "Markaðsdeild"のように)

選択を使用している場合、ほとんどが機能しますが、更新を使用する必要があり、何らかの理由で機能しません。

この WHERE コマンドは選択で機能しますが、更新コマンドを使用している場合はゼロ行を返します。私は何を間違っていますか?

編集: 明確にするために、更新コマンドの前後のすべてのケースで stada が 1 に設定されます。私が望んでいたように、1から2、3に変わっていません。

Edit2:データベースのスクリーンショットです。作成コマンドも提供できます。

Edit3: Stada はビットであり、int ではありません。

解決策: ビットが 1 と 0 だけであるため、テーブルの作成中にエラーが発生したため、stada を int として再作成し、コードが機能するようになりました。

4

2 に答える 2

0

サーバーとクライアントの文字セットは異なります。

http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html

于 2013-02-27T12:13:49.290 に答える
0

stada の値がクエリによって変更されていない場合、何も更新されていないため、0 行が返されます。

于 2013-02-27T11:17:04.677 に答える