2017-10-31 13 views
-6

を失敗した更新する必要があり、私ははなぜクエリ条件が

id  position 
------------ 
1  2 
2  1 
3  3 

をたどるなど、SQLテーブルには、今私は、どのように私にできること

id  position 
    ------------ 
    1  1 
    2  2 
    3  3 

をたどるように、結果を返すアクションを実行しようとしていますか?

+0

&&条件を削除し、出力を伝えます。 –

+1

SQLの&&の代わりにANDを使用 – bumperbox

+1

更新するものは何もないので、あなたは 'id = 1'で行を持っていませんか? 'id = 1'の行はすでに' pos = 2'を持っていますか? –

答えて

1

使用してみてください。

クエリ

set @a := (select `position` from `your_table_name` where id = 1); 
set @b := (select `position` from `your_table_name` where id = 2); 

update `your_table_name` 
set `position` = (
    case `id` when 1 then @b else @a end 
) 
where `id` < 3; 
0

posとは何ですか?

応じてテーブルを更新するCASE式を使用し、次いで1及び2を有するIDSのpositionカラム値を格納するための2つの変数これUPDATE table_name SET your_field_name= '2' WHERE id = 1

+0

posは位置を定義しています – TarangP