0

同様の別の質問を投稿しました。
そのため、まだ多くの問題があります。
これは、列の位置を更新できるようにしたい場合です。
以下の例に従います。更新前はこちら

+----+--------------+----------+
| id | question     | position |
+----+--------------+----------+
|  1 | Question 1   |        1 |
|  2 | Question 2   |        2 |
|  3 | Question 3   |        3 |
|  4 | Question 4   |        4 |
+----+--------------+----------+

したがって、行ID = 2を列位置2から4に更新すると、次のように整理されます。更新後はこちら

+----+--------------+----------+
| id | question     | position |
+----+--------------+----------+ 
|  1 | Question 1   |        1 | 
|  2 | Question 2   |        4 |
|  3 | Question 3   |        2 | 
|  4 | Question 4   |        3 |
+----+--------------+----------+

私は多くのことを試しましたが、何も機能しません。
誰かが私を助けることができれば、非常に感謝されます。
どうもありがとう。

4

1 に答える 1

0

あなたはこのようなことをしたい:

update t join
       (select position from t where id = 2) t1
       on t.position >= t1.position
    set position = (case when id = 2 then 4 else position - 1 end)

つまり、 の位置よりも大きいすべての位置から「1」を引きid = 2ます。その位置を「4」に設定します。

于 2013-07-03T02:01:46.703 に答える