• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqlのクエリについて )

MySQLクエリでテーブルの更新方法について

このQ&Aのポイント
  • MySQLのバージョンが4.0のため、副問い合わせは利用できません。テーブルの更新方法を教えてください。
  • 以下のようなテーブルとデータがあります。 i | group | no 1 | test1 | NULL 2 | test1 | NULL 3 | test2 | NULL 4 | test2 | NULL 5 | test2 | NULL 6 | test2 | NULL 7 | test3 | NULL 8 | test4 | NULL テーブルを更新して以下のようにしたいです。 i | group | no 1 | test1 | 1 2 | test1 | 2 3 | test2 | 1 4 | test2 | 2 5 | test2 | 3 6 | test2 | 4 7 | test3 | 1 8 | test4 | 1 どのようなクエリを使えば良いでしょうか?
  • MySQLのバージョンが4.0のため、副問い合わせは使えません。テーブルのデータを更新する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

groupは予約語なのでフィールド名に使うのはやめた方がいいですね まぁこういうインチキくさいのは得意なので、こうするといいでしょう。 set @pre="",@rank=1; create temporary table temp select i,@rank:=if(@pre=`group`,@rank+1,1) as no,@pre:=`group` as `group` from a_table order by no; replace a_table select i,`group`,no from temp 結局、mysqlのバージョンをあげるのが最良ということがわかると 思いますけど・・・

kadai1800
質問者

お礼

yambejp様 助かりました。 いつも回答ありがとうございます。

その他の回答 (2)

  • kuma8055
  • ベストアンサー率28% (27/94)
回答No.2

No1です。 すいません、激しく勘違いしていました。。。OTL

  • kuma8055
  • ベストアンサー率28% (27/94)
回答No.1

update a_table set `no` = `i`; で出来ませんか?

関連するQ&A