>>950 おかしい。 エラーメッセだして。
>>951 その括弧前後に文字はくっついてないんですか?
953 :
952 :2007/04/29(日) 23:51:50 ID:???
>>950 のは、恐らく ユニークとかではなく、項目名が同じで
どちらのテーブルのものか特定できない というエラーが出ていると予想。
954 :
943 :2007/04/30(月) 02:59:41 ID:???
>>953 『ERROR 1052 (23000): Column 'threadno_c' in on clause is ambiguous』 というエラーですね。
直訳すると 'threadno_c' が ambiguous = 曖昧 という意味になるので、曖昧 = ユニークで無くて特定できない だと思ってたんですが、
これは もっとシンプルに 'threadno_c' だけじゃ、左辺だか右辺だか特定できないって意味だったんですね。
『SELECT * FROM thread_t LEFT JOIN res_t ON thread_t.threadno_c=res_t.threadno_c』 にしたら解決です。
ありがとうございました。
955 :
NAME IS NULL :2007/04/30(月) 10:21:36 ID:Vl6beltG
Aテーブル カラムA1 カラムA2 Bテーブル カラムB1 カラムB2 キーは使わないものとして、 カラムB2にA1の中に入っている数値+1をINSERTするにはどうゆうSQL文になりますか?
>>939 mysql_install_db 実行しる
957 :
NAME IS NULL :2007/04/30(月) 11:42:00 ID:vuvLkEdO
AUTO_INCREMENTでIDを入れているのですが、 レコードをDELETEした場合、IDに空白があいてしまいますよね? たとえば159というIDが空白になった場合、 157 158 160 161...という風になりますが、 160以降を1つIDをあげるみたいなことは不可能ですか?
質問です 本の名前と書評をセットにして(CSVにして)コマンドでMysqlに読み込ませたんだけど、 phpでブラウザに表示確認してみたら書評部分が一つ目の改行以下がありませんでした。 どうやら最初のloadの時点で失敗してたみたいです。 ちゃんと改行を保持しつつ読み込ませるためにはcsvをどのへん気をつけたら良いんでしょう?
だからおまいら質問ならIDとか環境とか書けって
>>960 誤爆ですか?俺ルールですか?
テンプレに書いてないことを強要するなよ。
質問主はageでID出すってのは一般的に質問系スレの 基本ルールだと思ってたんだがここでは違うの? 環境を詳しく書くのも当たり前のことだと思うんだが。 って俺釣られた?
963 :
959 :2007/05/01(火) 11:39:30 ID:7zo1GuAd
>>959 いや、なんだか下げ進行ぽかったんで上げなかったんだけど、、
環境もあんまり関係なさそうだから書かなかったです
os:winXP 鯖:apache2 で、Mysql(内部エンコード:euc)です。。
GWだなぁと。
>>959 ・load data の実行結果で warningとは上がってないか確かめる
・「phpでブラウザに表示確認してみたら」じゃなくてレコードのカラムレベルで確認しる
コンソール使える?
967 :
959 :2007/05/01(火) 12:18:18 ID:7zo1GuAd
>>964 コマンドで確認したらやっぱり読み込んでないんですよね
CSVの作成方法は、
1、エクセルで各セルに本名と書評を書いて、書評はセル内部でalt+enterで改行
2、CSV指定して保存
というものです。保存時もEUCにあわせたし、改行コードは「変換なし」なんですが、、
どうしたら良いんでしょ? まさかエクセルの時点で、<br>とか打ち込むんでしょうか?
>>967 エクセルで保存したCSVをテキストエディタの文字列置換等で
全部ダブルクオート囲みのものにして、load dataの時に
ENCLOSED BY '"';
のオプションつけてみるとか。
970 :
959 :2007/05/01(火) 13:48:10 ID:???
おお、サンキュ ありがとうございました
971 :
NAME IS NULL :2007/05/01(火) 17:16:51 ID:T32xQBuX
エラーになってしまいます。 インサートのvaluesの中に別テーブルのカラムをmax()した値をいれたいんですがどうすればいいんでしょう? INSERT INTO ほげテーブル(カラム1,カラム2) values (max(別テーブル.テストカラム),1); ↓ Invalid use of group function
973 :
NAME IS NULL :2007/05/02(水) 08:11:39 ID:x/p7D3tO
SQL処理の速さとリソースを考えると、if分岐があるような処理をストアドプロシジャで処理するのととサーブレット側で処理するのじゃどっちがいいとおもいますか? (SQL鯖に対するリクエストの数はどちらも同じ前提で)
>>973 ストアドのリソースの取り方ははっきり知らないけど、
サーブレットよりも ネイティブな実行バイナリの
MySQLに託した方が速いとは思う。 しかも内部で全部完結するわけだし。
975 :
NAME IS NULL :2007/05/02(水) 10:06:04 ID:cSawO+ZK
>>974 なるほど。prepareStatementとかのコンパイルでもだめなんですか・・・。
その場合の速さやリソースの差はどの程度のsecや%の差になると思いますか?
はっきりとデータがなくてもみなさんの主観と経験からの予測で結構です。
(もちろんデータの量にもよりますが、かなり大規模な構築の場合を想定したとして)
976 :
NAME IS NULL :2007/05/02(水) 10:33:20 ID:Nv/lhVwe
すいません質問があります。 いまMy SQLをインストールしてテキストを見ながら勉強中なんですが、 構文を打った際 mysql> UPDATE shinamono SET sname = 'ハサミ' WHERE scode = 'A003'; '> と、エンターを押しても、 '>が出てきてしまい受け付けてくれません。 構文自体はテキストの例文から持ってきたものなので間違いはないのですが、 これは一体どういった意味なのでしょうか・・・・・? よろしくお願いいたします。
977 :
NAME IS NULL :2007/05/02(水) 10:45:42 ID:Nv/lhVwe
追記 その後、exitやquit等のコマンドプロント自体を終了させるコマンドを打っても '>となってしまい結局右上の×をクリックして終了させました。 で、再起動して先ほどのコマンドを打ってみたところ、問題なく受け付けてくれました。 エンターを押しても押しても '>となってしまうのは一体なんでしょうか・・・・・?
>>976 よくわかんないけど、ターミナルの改行コードがおかしくなってるんじゃない?
>>976 そういう場合は '\c と入力すればクエリを中断できる。
へぇーへぇーへぇー 今頃知った驚愕の事実 複数行入力時に前行のミスに気付いたらクライアント殺すしかないと思ってたよ
>>975 どっちにしてもクライアントプログラムが条件判断するって事は、
判断後毎回SQLを送信するんだろうし、MySQLはいちいちコンパイル
せにゃならん。そのアプリ間はローカル又はネットワークとして通信も
発生もすると。 ストアドは一気にコンパイルして内部処理だから速いと思う。
10〜30%ぐらい速くなっていい様な気もするが、SQLのサイズにもよるし
ベンチ取らないと何とも胃炎。
984 :
NAME IS NULL :2007/05/03(木) 15:36:05 ID:tZOHDPJo
mysqld起動時に /usr/local/mysql/bin/mysqld_safe & このコマンドだと起動できません。 070503 15:33:10 mysqld ended /usr/local/mysql/bin/mysqld_safe --user=root & ユーザー指定すると起動できます。 インストール時のユーザー選択に問題があったのでしょうか? ユーザー指定なしでも起動できるようにしたいのでどのようにすればよいか 教えてください。
>>984 my.cnf の中の設定がちゃんとなってないからでわ。
986 :
NAME IS NULL :2007/05/03(木) 17:02:35 ID:0rgDJBYG
decimal(5,2) を、整数5桁プラス小数点以下2桁だと思い込んでプログラムを作り さきほど 整数3桁プラス小数点以下2桁だと知りました なのですが、このカラムには今でも「2560.00」みたいなデータが格納されており参照もできます どちらが正しいのでしょうか?
987 :
NAME IS NULL :2007/05/03(木) 18:51:33 ID:UsoZUQrN
MYSQLのオフィシャルのサイトの重さは何なんだろう・・・。
なんで
>>986 みたいなことが起きてるか分からんけど、
decimal の振る舞いは 5.0.3前後で変わっているようなので、
それに関係してるかも知らん。いちどダンプしてリロードして
身辺整理して出直したほうがよくはないか。いま、5.0.37 で
> create table test (id int, data decimal(5,3));
> insert into test (id, data) values (1, 1.23);
> insert into test (id, data) values (2, 12.234);
> insert into test (id, data) values (3, 123.234);
l> select * from test;
としたら
+------+----+
| id | data |
+------+----+
| 1 | 1.230 |
| 2 | 12.234 |
| 3 | 99.999 |
+------+----+
と出るよ。
>>984 /usr/local/mysql/data/hostname.err に何か出てないか見てみる
テーブル test_t で hoge = 3 を満たす行の数を求めたい場合には、どのようにするのが良いでしょうか? 現在は、 SELECT dummy_c FROM test_t WHERE hoge = 3; と、わざわざダミー項目を入れて SELECT 文を発行し、最後の "5 rows in set (0.00 sec)" の部分から行数を求めているんですが、 せっかく SELECT 文を発行したのに結果を使わないのは無駄だと思うので、正規の方法が知りたいです。 よろしくお願い致します。
SELECT COUNT(*) FROM test_t WHERE hoge = 3; でOK
おじちゃん泣けるよw
>"5 rows in set (0.00 sec)" の部分から行数を求めている 苦労してんなーーーーー
∩___∩ /゙ミヽ、,,___,,/゙ヽ | 丿 ヽ i ノ `ヽ' / ○ ○ | / `(○) (○)´i、 先生助けてっ!、 | U ( _●_) ミ 彡,U ミ(__,▼_)彡ミ MMORPGにMySQL使ってるんだけど人が増えたら 彡、 |∪| ,,/ ,へ、, |∪| /゙ 息が止まっちゃったの!! / ヽ ヽノ ヾ_,,..,,,,_ / ' ヽノ `/´ ヽ | ヽ ./ ,' 3 `ヽーっ / | │ ヾ ヾl ⊃ ⌒_つ ソ ポン酢 | │ハンゲ \,,__`'ー-⊃⊂'''''
うめ
うめ2
うめ3
うめ4
うめ5
ありがとうございました
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。