MySQL初心者です。
以下のようなテーブルを作ろうかと考えています(PHP経由)
======================
id filename
1 1.jpg
2 2.jpg
・・・
======================
要はオートインクリメントで得たidを別のカラムでも活用したいのです。
とりあえず考えたのは、
1) insert で id を書き込む
2) last_insert_id() で id を得て update で filename を書き込む・・・
といったところですが、2段階作業というのが気になります。
「一発で」できる方法があるならそうしたいのですが無理でしょうか。
「無理」という回答でも結構です。
お詳しい方、よろしくお願いいたします。
No.2
- 回答日時:
サブクエリを使うにしても、insert対象のtableをselect文の対象に出来ないので、先にデータ取得するか、後から取得か、いずれにしてもSQL文2行は必要。
いちいちfetchが要らない方法としては、変数を使う方法がある
$sql1 = "set @a = (select max(id) from `tablename`) ";
$sql2 = "insert into `tablename` set `filename`= concat( @a:=@a+1 , '.gif')";
phpの mysql_query() では、1行ずつSQL文を発行しなければならないが、続けて発行するだけですむ。
前方から順に@aに1ずつ足していくので、以下のように複数行を一度にinsertも可能。
$sql2 = "insert into `tablename` ( `filename` ) values( concat(@a:=@a+1,'.gif') )
, ( concat(@a:=@a+1,'.gif') ) , ( concat(@a:=@a+1,'.gif') )":
この場合も $sql1を発行してから、$sql2を発行する。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- Oracle SQL update方法 2 2022/06/22 14:07
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
MySQLのDATE型カラム値がNULLの...
-
VIEWの元のテーブルのindexって...
-
sqlで、600行あるテーブルを100...
-
VMware Player でCD-ROMドライ...
-
[MySQL] UNIQUE制約の値を更新...
-
「Duplicate entry '1' for key...
-
MySQLのint型で001と表示する方...
-
insertを高速化させたい
-
JOIN後同一名カラムから値がと...
-
ある条件の最大値+1を初番する...
-
エクセルの関数について教えて...
-
PL/SQLの変数について
-
入力値と外部キーをINSERTするには
-
時給毎の勤務時間を求めるSQL
-
MySQLでvarcharに先頭ゼロをセ...
-
ローカルルーターモードとは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
PL/SQLの変数について
-
マイクラPC版のコマンドで効率...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
Access パラメータクエリをcsv...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
複数テーブルのGROUP BY の使い...
-
ある条件の最大値+1を初番する...
-
MySQLのint型で001と表示する方...
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] UNIQUE制約の値を更新...
-
テーブル名を省略して「h.id」...
おすすめ情報