- ベストアンサー
INSERT INTOに関しまして。
$sql = "INSERT INTO テーブル名(name,day,kg)VALUES('','$day','-1')"; 現在このようなSQL文でINSERTしていますが、データベース内にあるカラムname全てに対してINSERTするにはどうすれば良いでしょうか??現在のSQL文ではそれができず、nameが空欄の状態で更新されてしまいます。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
なるほど、質問の仕方がわるかったですね。 テーブル構造の課題があるかもしれなけど insert into hoge(name,day,kg) select distinct name,'3日',-1 from hoge でいけるんじゃない?
その他の回答 (5)
- drmada_baka
- ベストアンサー率0% (0/5)
drmadaに回答するのは無駄。 Yahoo知恵袋でも同様の質問をしている Yahoo知恵袋でのID:http://my.chiebukuro.yahoo.co.jp/my/drdamaga さらにはてなでもhttp://q.hatena.ne.jp/rogotaro/ PHPProでも同じようなことをしてすでに追い出されている模様。 参考URL:http://parn.s55.xrea.com/blog/213
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
オーソドックスにこんな風にするのがいいと思う。 DBが判らないから勝手にPostgreSQL関数で書いてるけど、これくらいなら解説要らないよね。 $sql_1 = "select distinct name from テーブル名"; $res_1 = pg_exec ($con, $sql_1); foreach (pg_fetch_all_columns ($res_1) as $name) { $sql_2 = "insert into テーブル名 (name,day,kg) values ('$name','$day','-1')"; $res_2 = pg_exec ($con, $sql_2); }
- shimix
- ベストアンサー率54% (865/1590)
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1476598294 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1476599324 >ぜっーーーーーーーたいに、全てのユーザーに-1入れないとイケナイデス。 設計からやり直せ
- yambejp
- ベストアンサー率51% (3827/7415)
状況がわからない >データベース内にあるカラムname全てに対してINSERTする プロシージャやら外部キーやらを使うことになるんでしょうけど おそらくやらない方がいい。 状況説明があれば代替案がでるかもしれないですね
補足
例えば 山田さん 2日 58 山田さん 1日 60 田中さん 2日 45 田中さん 1日 40 だとしたら、nameにある名前に新しい日付と-1を入れ 山田さん 3日 -1 山田さん 2日 58 山田さん 1日 60 田中さん 3日 -1 田中さん 2日 45 田中さん 1日 40 こんな感じにしたいです。
- gangongyan
- ベストアンサー率25% (1/4)
META情報を取得すると良いでしょう
お礼
おー!select distinctで名前全部、という意味にしてるんですか?お時間ある時で構いませんので返答お願いいたします。試してみたいと思います。回答ありがとうございます。