12/08/28 13:21:10.26
なぜそうしたいかというのは、「UPDATE大量発行より1回の発行のほうが軽いだろJK」という思い込みが理由なので、
もし何らかの方法があるとしても負荷は大して変わんねーよということであれば>>72のでもいいです。
(UPDATE対象は1万レコードくらい、カラムは数個)
75:NAME IS NULL
12/08/28 16:42:57.96
UPDATE fruits
SET price = CASE
WHEN name = りんご THEN 150
WHEN name = みかん THEN 100
ELSE price END;
76:70
12/08/28 17:22:36.39
>>75
ありがとうございました!
77:NAME IS NULL
12/08/28 17:46:24.67
まずDBにワークテーブル作って、そこにCSVの内容突っ込んでから
SQLで更新かければ、更新のSQLは1行ですむぞ
78:NAME IS NULL
12/08/28 18:00:00.55
同じ名前が複数あったとき困る気がする、、スクリプトで排除するのかな
79:NAME IS NULL
12/08/29 16:53:03.81
大体、単価をマスターに含めること自体が
部分関数従属がだな
80:NAME IS NULL
12/08/29 19:18:39.62
って、確認せずに書いてもいないことを思い込みで進めて、後で困るパターン。
81:NAME IS NULL
12/08/31 17:21:33.02
使用DB:mysql5
t1
id str
1 a
2 b
3 c
t2
id t1.id t1.id
1 1 2
2 2 3
3 3 1
このふたつのテーブルを結合して
id t1.id t1.str t1.id t1.str
1 1 a 2 b
2 2 b 3 c
3 3 c 1 a
こういう結果を得る方法はありますか・・・?
select * from t1 a
INNER JOIN t2 b on b.id = a.id
and b.id = a.id
とやってみても、idが2つあるので結合出来ないです。
82:NAME IS NULL
12/08/31 18:07:06.69
t2のカラム名おかしくね?
t2にt1を2回JOINするだけだと思うけど
83:NAME IS NULL
12/08/31 18:48:29.22
同じテーブルを複数JOINできるよ
84:NAME IS NULL
12/08/31 19:14:46.70
t2のカラム名、いくらmysqlでもこんなカラム名許すわけないよな
t2って実テーブルじゃないのか?
とりあえずt2のカラム名ちゃんとしてれば、t1に別名つけて2回Joinすればいけるはずだが
85:NAME IS NULL
12/08/31 23:16:34.78
許しちゃうんだなこれが
select 1 as `t1.id`
86:NAME IS NULL
12/09/03 19:47:21.70
複数のテーブルを結合して、その列名のみを取得するのはできるのでしょうか?
教えてください
SQLServerです。
87:NAME IS NULL
12/09/03 20:35:47.33
SQL Server知らんからググったが、syscolumnsとサブクエリ使えばいけるんじゃね
88:NAME IS NULL
12/09/03 20:46:00.48
列名のみ取得ってのがイマイチ何をどうしたいのか解らんな
where 1=0とかで良いような気もする
89:NAME IS NULL
12/09/03 20:47:45.29
>>88
値として列名を取得したいのです。
90:NAME IS NULL
12/09/03 20:48:09.46
列名も知らないDBを使って何かしようとしてるの?
SQLインジェクションのやり方の質問か
91:NAME IS NULL
12/09/03 20:53:14.13
>>87
どうやったらできますか?
調べてもよくわかりません。
教えてください
92:NAME IS NULL
12/09/03 20:57:21.89
>>91
それ結合とか関係ないな
システムテーブルってDBMS固有な場合が多いし、SQL Serverのスレ行って聞け
93:NAME IS NULL
12/09/03 21:00:40.98
>>92
わかりました。ありがとうございました。
94:NAME IS NULL
12/09/03 21:32:03.84
INFORMATION_SCHEMA が使えるだろ。