お世話になります。
PHP&MySQLでプログラムを勉強しています。
データを挿入する際にデータに連番を振ろうと思っています。その際に連番を1 2 3 4・・・というような連番ではなく、
hametome0000001
hametome0000002
hametome0000003
・
・
・
・
といったような(文字列+数列)連番にしたいと思っているのですが、MySQLのデータ型をauto incrementにして連番を振る場合では文字列+数列の連番が振れないようなので、どのようにすれば文字列+数列の連番を振れるのか分かりません。
よろしくご教授のほど、お願いいたします。
No.3ベストアンサー
- 回答日時:
トランザクションの問題がありますが
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(8) | NO | PRI | NULL | auto_increment |
| id_name | varchar(10) | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+
のようなテーブルで説明しますと
insert into test values (NULL,concat('hogehoge',last_insert_id()+1));
これでいけるかとおもいます。
同一SQL文内で インサート時の id が取れないので
直近で insertされた id + 1 を取得してインサートしています。
下記の解答の様に
insert into test values (NULL,'hogehoge');
とやったあとに
update test set id_name=concat('hogehoge',lpad(last_insert_id(),2,0)) where id = last_insert_id()
でもいいかと思います。
お礼が遅れまして申し訳ありません。お教え頂きました方法で実現できました。
下の方の方法と合わせてどちらがよいのか色々と調べてみたいと思います。ありがとうございました。
No.2
- 回答日時:
<?php
$sql = 'insert文';
mysql_query($sql); //成功したとして
$id = mysql_insert_id(); //直近のインサートされたIDを取得できます。
$str_id = sprintf("hametome%07d", $id);
$sql = 'update文';
mysql_query($sql); //ここで生成したIDを入力するフィールドにUPDATE。
?>
といった流れで一応出来ますが、もっと良いやり方があるかもしれませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで連続して重複する行数の違う列を参照する方法 5 2023/04/23 06:15
- Excel(エクセル) 条件を指定して連番を振る方法(エクセル) 3 2022/06/02 15:12
- Excel(エクセル) エクセルで飛び飛びのセルの計算 5 2022/10/25 05:33
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Excel(エクセル) EXCEL 連番を振る方法 4 2023/08/24 15:36
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
- Excel(エクセル) Excelの数字(文字列)合計について あるデータをダウンロードすると、数字データが全て文字列になっ 4 2022/09/26 21:21
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
insert1つの処理でもトランザ...
-
ResultSetインターフェイスでの...
-
<VB.NET>INSERT文でDBにデータ...
-
CakePHPとMySqlを使用していま...
-
配列をループさせてUPDATE
-
order by での変数使用について。
-
Q&Aサイトを作成していてURLの...
-
sqliteの構造体
-
JAVA SQLServerException 列名 ...
-
VBAをつかってクエリの情報を抽...
-
MySQLでデータベースにデータin...
-
phpのエラーについてです
-
BLOBでの画像表示について
-
PHPで[]の使い方について
-
sqlから多次元配列に要素を格納...
-
sortable ギブアップです…助け...
-
エラー3011
-
php テーブルを作れない
-
テーブルに入っているデータと...
-
PHP と MySQL でテーブルの行数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
<VB.NET>INSERT文でDBにデータ...
-
データベースに存在するデータ...
-
ResultSetインターフェイスでの...
-
C# で発生したException.Messag...
-
Q&Aサイトを作成していてURLの...
-
VBA ACCESS SQL...
-
MySQLのINSERT時にたまに重複に...
-
INSERT,DELETEを同時に
-
【初歩】配列の格納データ数だ...
-
PHP&MySQLでの文字列+数列の一...
-
php postgres Insert と updat...
-
VB.NET エラーになる箇...
-
OR検索を実装したい
-
PHP初心者です。syntax error, ...
-
mysqliを使ってデータベースを...
-
like検索の複数キーワードで、...
-
CakePHPとMySqlを使用していま...
おすすめ情報