
お世話になります。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<VB.NET>INSERT文でDBにデータ...
-
JAVA SQLServerException 列名 ...
-
insert1つの処理でもトランザ...
-
MySQLでデータベースにデータin...
-
Accessのテーブルへ複数の主キ...
-
テキストボックスに入れた内容...
-
in 'where clause'のエラーの理由
-
アポストロフィを含む文字列の追加
-
エクセルVBAについて
-
検索表示について
-
phpのエラーについてです
-
ヒアドキュメントでSQLを書く事...
-
MDB2エラーが対応出来ません。
-
phpでmysqlを使ってデータベー...
-
mysqlから取得した配列をカンマ...
-
PDO_MYSQLを利用したDB接続がで...
-
VBA初心者です。
-
実行時エラー3131 FROM 句の構...
-
チェックボックスによる複数の...
-
ACCESSのテーブルをHTMLファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
-
データベースに存在するデータ...
-
Pro*Cの構文エラー
-
insert1つの処理でもトランザ...
-
PHPからデータベースに接続した...
-
教えて下さい。
-
SQlite
-
プリぺアドステートメントで変...
-
コードで渡したデータを降順に...
-
VB勉強中
-
like検索の複数キーワードで、...
-
PHPよりMySQLの操作のコードの...
-
connectを使ったSQL実行でエラー
-
【PHP】CSVファイル内の文字列...
-
mysql php 複数のクエリ
-
ODBC接続でデータ件数を求...
-
PEARのgetOneでレコードが見つ...
-
phpでmysqlを検索、計算
-
ResultSetインターフェイスでの...
おすすめ情報