プロが教える店舗&オフィスのセキュリティ対策術

MySQLを利用しています。

テーブルにIntegerでそのレコードの内容の優先度を書いていますが、
これを早く交換するのにはどのような書き方がよいのでしょうか。
例えば、

|No|YUSEN|NAIYO |
|01| 1|自動車|   ←ここと
|02| 2|飛行機|
|03| 3|船舶 |   ←ここのYUSENの値を交換したい

     ↓
|No|YUSEN|NAIYO |
|01| 3|自動車|
|02| 2|飛行機|
|03| 1|船舶 |

と行った具合です。

よろしくお願い致します。

A 回答 (2件)

>Noの01と03のYUSENを入れ替えなさい



UPDATE hoge as h1,hoge as h2 SET h1.YUSEN=h2.YUSEN WHERE (h1.No='01' AND h2.No='03') OR (h1.No='03' AND h2.No='01');

この回答への補足

yambejp様
お礼が遅くなってすみません。

実は、SQLサーバーがMicrosoft SQL Server 2005 Express Editionに、
命令が「Noの01と03のYUSENを入れ替えなさい」から「YUSENの01と03
を入れ替えなさい」というように変わってしまいました。

試行錯誤しているのですが、「'as' 付近に不適切な構文があります」
と出てしまい困っています。
(MS-SQLではだめでしょうか?)

教えていただいたのは、テーブルをAS句で2つの名前で持って処理を
するということだと思いますが、これは一般的なSQLの書き方と思っ
てよいのでしょうか?
(テーブル名はTB_YUSENでした)

すみません。よろしくお願い致します。

補足日時:2009/12/08 14:08
    • good
    • 0

なにをキーにYOUSEが1や3だということを知るのでしょうか?


そのあたりの定義があいまいだと回答ができません。

この回答への補足

YUSEN(優先度)が決められているのですが、
それを、変更するという処理です。

指示されるのは、Noの01と03のYUSENを入れ替えなさい
という処理です。

補足日時:2009/11/25 17:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す