これを行う方法はありますか:ORDER BYが1降順の場合はフィールドを更新しますか?
ORDER BYの場所に従ってフィールド 'ランク'を更新したいとします。例えば
:(擬似)
If id order by place = 1 then update rank field to place were id=get id
rank place id
1 1 5 PC
2 2 8 MAC
これが可能ですか?
これを行う方法はありますか:ORDER BYが1降順の場合はフィールドを更新しますか?
ORDER BYの場所に従ってフィールド 'ランク'を更新したいとします。例えば
:(擬似)
If id order by place = 1 then update rank field to place were id=get id
rank place id
1 1 5 PC
2 2 8 MAC
これが可能ですか?
一部のRDBMSには、これに使用できるクエリにROWNUM疑似列があります。 使用しているデータベースを指定していません。たとえば、Oracleにはこれがあります。
これは何ですか?
UPDATE tbl_name
SET rank = 1
WHERE id = (
SELECT id
WHERE condition
ORDER BY place DESC
LIMIT 1
)
それともあなたのコメント(私はMySQLのhttp://dev.mysql.com/doc/refman/5.0/en/update.html思う)から:あなたは常にこれらはあなたが同様に更新したいレコードですかどうかを確認するように選択を行うことができます
UPDATE tbl_name
SET rank = 10
WHERE id = 9
ORDER BY wins DESC
LIMIT 1
:
SELECT *
FROM tbl_name
WHERE id = (
SELECT id
WHERE condition
ORDER BY place DESC
LIMIT 1
)
または
SELECT *
FROM tbl_name
WHERE id = 9
ORDER BY wins DESC
LIMIT 1
制限1は1位になったことを示しますか? – fabio
ORDER BYはDESC LIMIT 1を獲得し、最後の勝利は1レコードしか返しません –
質問をしてください。 – Eineki
ok。変更ボタンをクリックすると、ORDER BY関数によって与えられた場所に従って、そのテーブルのフィールドランクを更新します。 id = 9 orderを "wins"と言います - テーブルに#10を置きます。同じテーブル内のそのIDの 'ランク'フィールドに#10の値を追加したいと思っています....はい? – fabio