MySQL 総合 Part10

このエントリーをはてなブックマークに追加
1NAME IS NULL
快速 RDBMS、MySQL の総合スレです。
前スレ[MySQL 総合 Part9] http://pc8.2ch.net/test/read.cgi/db/1155794342/
[関連スレと過去ログ]
http://find.2ch.net/index.php?STR=MySQL
http://makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on

[MySQL Developer Zone] http://dev.mysql.com/
[MySQL 日本語リファレンスマニュアル] http://dev.mysql.com/doc/mysql/ja/
[MySQL Internals Manual] http://dev.mysql.com/doc/internals/en/

[MyNA] http://www.mysql.gr.jp/
[MLja] http://lists.mysql.com/mysql-ja

・関連ツール及びユーティリティ
・関連書籍
>>2
2NAME IS NULL:2006/11/26(日) 06:56:26 ID:???
【関連ツール及びユーティリティ】

[phpMyAdmin] http://www.phpmyadmin.net/
[phpMyBackupPro] http://www.phpmybackuppro.net/
[MySQLCC] http://www.mysql.com/products/mysqlcc/
[MySQL-Front] http://www.mysqlfront.de/
[mytop] http://jeremy.zawodny.com/mysql/mytop/

MySQL ABでの各種GUIツールは
MySQL GUI Toolsとして統合されています
http://dev.mysql.com/downloads/gui-tools/5.0.html
・MySQL Administrator
・MySQL Query Browser
・MySQL Migration Toolkit
・MySQL Workbench

【関連書籍】

[MySQL Books]
http://dev.mysql.com/books/
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-jp&fqp=keywords%01MySQL
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-us&fqp=keywords%01MySQL
3NAME IS NULL:2006/11/26(日) 07:01:41 ID:???
ここで質問をする前に、
MyNAでのFAQを最初に確認しましょう。

http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
4NAME IS NULL:2006/11/26(日) 07:05:19 ID:???
テンプレ補足

■2ch風偉人伝 AA はこちら
http://www.aadayo.com/aa/02_13.html
5NAME IS NULL:2006/11/26(日) 16:43:32 ID:???
【関連ツール及びユーティリティ】

[Common SQL Environment] http://www.hi-ho.ne.jp/tsumiki/cse_1.html
6NAME IS NULL:2006/11/26(日) 20:00:31 ID:???
Impossible WHERE noticed after reading const tables

ってどういう意味?
7NAME IS NULL:2006/11/26(日) 23:24:53 ID:???
MyNAでの「心得の条」もテンプレ追加よろしく

http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0
8NAME IS NULL:2006/11/27(月) 21:52:02 ID:???
>>6
出だしからして
スパイ大作戦と何か関係あるのでわ?
9NAME IS NULL:2006/11/28(火) 11:24:03 ID:???
>>6
まんま、そのキーワードでググルと 1,100,000 件ヒットする訳だが・・
10NAME IS NULL:2006/11/28(火) 11:40:24 ID:???
おはようフェルプス君、さて今回の君の任務だが...(ry
11NAME IS NULL:2006/11/28(火) 15:11:45 ID:???
>>9
そんなにヒットしてもわからないよ。説明がいっこもない。
12NAME IS NULL:2006/11/28(火) 16:17:42 ID:???
>>6
explain ? なら調べられないって。Where見直したら。
13NAME IS NULL:2006/11/28(火) 16:23:43 ID:???
>>11
>Impossible WHERE noticed after reading const tables

なぁ・・・もしかしてGoogleの使い方知らないの?
やってみたら、最初の一件目に答えが出てたよ
要はWHEREで指定した条件にマッチする行が一つもないってこったな
14NAME IS NULL:2006/11/28(火) 17:24:23 ID:kbA+YKf7
M I B

I
15NAME IS NULL:2006/11/28(火) 19:13:18 ID:???
最近MYSQLとPHP始めたんですが

userテーブルからuseridの最大値を取り出してそれに+1して次のユーザー
登録に使いたいと思い以下のようにやってみたのですが

$db = "test";
$sql = "SELECT MAX(userid) FROM user";
$rs = mysql_db_query($db,$sql);
$obj = mysql_fetch_object($rs);
$maxid = $obj->userid+1;

SELECT MAXを行った後に$objの中を見ると空っぽというか何も
入ってないんです、直接SQLで"SELECT MAX(userid) FROM user"を
打ち込むと、ちゃんと最大のID値を持った部分が表示されるのですが
PHPではMAXなど使う際は何か違う手段を取る必要があるのでしょうか?、ちなみに
SELECT * FROM とやる分にはちゃんとオブジェクトが返ってきます。

MySQLは4.0.22です、よろしくお願いします・・。
16NAME IS NULL:2006/11/28(火) 19:41:52 ID:???
>>15
つ「おーといんくりめんと」
17NAME IS NULL:2006/11/28(火) 20:06:40 ID:???
>>15
16の通り、「おーといんくりめんと」を使うべきだが、最大値を取るには、
"SELECT MAX(userid) as userid FROM user" でクエリしたらいいんじゃね。
18NAME IS NULL:2006/11/28(火) 20:25:37 ID:???
>>15
これだとどう?
$result = mysql_query($sql);
$max = mysql_result($result, 0, 0);
1915:2006/11/28(火) 21:02:10 ID:???
>>16
それも考えましたが、この先同じような事態になったときの方法が知りたかったので・・・・。

>>17
>>18

2通りともうまくいきました!、ありがとうございます、ぐぐったりしてもSQL直接の書き方は
あってもPHPでのサンプルみたいなのがなかなか見あたらなかったので・・・、関数に関しても
IDで返すとはあってもそのIDを使って目的の値をどうやって引き出せばいいのかとか色々
試行錯誤してもダメだったもので・・、色々な方法があるものなんですね、内容の意味
ちゃんと理解して行きたいと思います、しかし慣れるまで大変だ・・・orz。
20NAME IS NULL:2006/11/28(火) 21:12:23 ID:???
>>15
「おーといんくりめんと」を使わないと、ちゃんと対策しな限りクリティカルなタイミングで
IDの重複が起こるかも。ロック、ユニークがヒント。
21NAME IS NULL:2006/11/29(水) 04:49:14 ID:???
あと、MIN/MAX/SUMが、最近エンバグしてしまったらしく、凄い数のバグと修正が上がってる。
要注意だ。
22NAME IS NULL:2006/11/29(水) 09:17:41 ID:???
>>19
少なくともUseridの新しい番号(連番?)を求めるために、
いちいちMAXで求めるなんていうひでえシステムを組んではいけない。
23NAME IS NULL:2006/11/29(水) 12:59:37 ID:???
4.1だけど、"〜 on duplicate key update 〜" の update 時に自分なりの where句は入れられ
ないでOK?
実験ではだめだった。あればさらに便利なのにぃ。
24NAME IS NULL:2006/11/29(水) 16:45:12 ID:FMjeEO6G
>>22
他に方法ある?
sortして一番上のレコード一個取得して+1とか?
25NAME IS NULL:2006/11/29(水) 17:04:37 ID:???
>>24
いや、彼はおそらく、自前で求めるんじゃなくて、オートインクリメント
使えといいたいだけだと思う。
26NAME IS NULL:2006/11/29(水) 17:42:25 ID:???
>>24
だからさ、、なんでuserIdのmaxをそのdbをいちいちなめて取得するわけ?
登録するたびにMAXのクエリ走らせて、その間dbロックするわけだ。
普通は会員番号MAX値もつ1レコードのみの会員番号dbを作り、
それをPGで更新する。dbの取得、解放が一瞬で済む。

大量のトランザクションが入った場合にどうなるか考えてみて。
27NAME IS NULL:2006/11/29(水) 20:05:38 ID:???
ミッションクリティカルならともかく、userIdにインデックス作ってあるなら
MAXのクエリ走らせても結果は即効で返ってくるんじゃね?

全然別の話だが、そういう会員番号で4と9は縁起が悪いから、
と言う理由で演技の悪い番号はすっとばす様、>>26の方法で
作ったんだけどサ。
28NAME IS NULL:2006/11/29(水) 21:36:38 ID:???
>>27
理由にワロタが、そんなことしないで最初からダミー入れとけよ。
29NAME IS NULL:2006/11/29(水) 21:43:15 ID:???
微妙にイタチだが、mysql の datetime型カラムをの更新で、java の
PreparedStatement で Date変数をエレガントに setするにはどうやるの?
.setDateじゃ日付だけだし・・
エレガントじゃない方法(文字列でセット)はあるのだが・・・
30NAME IS NULL:2006/11/29(水) 22:21:19 ID:???
>>27
userIDとは別にデータベース管理のためだけに表には出ない通し番号付けておいた方がいいような気はする。
それにすらも特定の数字が使えないってことになると…そういう経験ないからどんな方法がいいのかちょっとわからん。
3127:2006/11/29(水) 23:03:33 ID:???
縁起の悪いナンバーをすっとばすのは、漏れも話を聞いたときはハァって
感じだったんだが、当時は言われたので仕方なくって感じだったな。

要するに頭から10人を開発の人間に割り当てればよかったんだろうけど、
開発の人間は10人もいなかったし、そもそも若い順に割り振るときに
会社の年輩のお偉いさんからあてられるので…。政治的(?)なのもあったしなぁ。

日本は迷信深い民族です。
3227:2006/11/29(水) 23:08:41 ID:???
もう忘れかけたけど、覚えている飛ばしナンバーは
4,9,42,666くらいだったなぁ。
666は漏れの趣味だったが。
さすがに44とか99の連番や組み合わせまでサポートする気はなかった。
33NAME IS NULL:2006/11/29(水) 23:15:46 ID:???
無いはずのuserIdがぁぁぁ、オカルト。。。。
34NAME IS NULL:2006/11/30(木) 16:42:03 ID:PfW/c3EC
自分、Microsoft Visual Studio express 2005
をつかっております。mysqlでデーターベースの勉強をしようと
しているのですがCからmysqlをつかうにはどうすればいんでしょか。
いちおうmysqlのソースファイルからコンパイルすればライブラリができる
ようなのですが自分、VC2005しかもってなくていろいろエラーがでて
コンパイルができません。mysql++というのもあるようですがvc6専用の
ようですしC用ライブラリのコンパイル済みのものはいったいどこから
入手すればよいのでしょうか。
35NAME IS NULL:2006/11/30(木) 17:16:41 ID:???
>>34
ODBCの存在&理解をした上での質問かをまず押させておきたい。
36NAME IS NULL:2006/11/30(木) 17:20:31 ID:PfW/c3EC
これは失礼いたしました!いまODBCというものを高速学習中です。
どうも失礼いたしましたあ。
37NAME IS NULL:2006/11/30(木) 17:50:29 ID:PfW/c3EC
Developerパッケージがインストールされてませんでした。
どうもすいません。
38NAME IS NULL:2006/11/30(木) 20:14:14 ID:Q9TtbzRf
散々MySQLの本で探して判らないことがありまして、何方か1つご教授おねがい致します
以下のテーブルで前日よりもCのカラムの値が大きいBのカラムを1つづつ、表示させるにはどうすれば出せますでしょうか?
↓のテーブルではフィールド数が少ないので、個別に指定すれば可能なのですが、実際のテーブルはレコードが20万件あるので
前日よりCの値が大きいBのみ出力するSELECT文をおねがいします。

date  B  C
11/20 01 50
11/20 02 40
11/20 03 30
11/20 04 20
11/19 01 30
11/19 02 40
11/19 03 20
11/19 04 60
39NAME IS NULL:2006/11/30(木) 20:34:26 ID:???
>>38
よくわからんが、前日のC最大値よりも大きい当日のレコードを、
抽出するという風に解釈すると、俺がやるなら、
日付、C最大値というテーブルを作り、エントリー時に更新しておいて
それを使って抽出すると思う。

いわゆる死に筋商品を把握するために、商品マスタの最終売上日を更新するように。
40NAME IS NULL:2006/11/30(木) 20:46:25 ID:Q9TtbzRf
>>39
レス有難うございます。出力したい結果を書くのを忘れてました
実際に行いたいのは商品の売り上げが前日の値よりも大きいものだけを出力すると言うものです。

出力したい結果は
>>38の例ですと以下のような感じにしたいです。(()の部分はなしで)

B(商品ID)
01  ((50-30)=20>0 (前日比+20))
41NAME IS NULL:2006/11/30(木) 22:31:52 ID:???
>>38
これでどう?
ちなみにMySQL
DBに合わせて日付計算部分は書き換えて

select X.*, Y.* from TBL as X, TBL as Y
where X.DT=adddate(Y.DT, interval -1 day)
and X.B = Y.B
and X.C < Y.C;
42NAME IS NULL:2006/11/30(木) 22:55:27 ID:???
>>40
同じくMySQL
ただしset sql_mode=ansi;をやってからね

select
X.B as 'B', '  ((' || Y.C || '-' || X.C || ')=' || Y.C - X.C || '>0 (前日比+' || Y.C - X.C || ')) '
as '(商品ID)'
from TBL as X, TBL as Y
where X.DT=adddate(Y.DT, interval -1 day)
and X.B = Y.B
and X.C < Y.C;
43NAME IS NULL:2006/12/01(金) 16:41:43 ID:???
uniqueキーが重複してインサートされた時、
新しいデータで上書きするようにしたいのですがどのようにすればいいでしょうか?
44NAME IS NULL:2006/12/01(金) 16:44:05 ID:???
>>43
insert into xxx on duplicate key update xxxx
45NAME IS NULL:2006/12/01(金) 18:16:24 ID:???
>>44さん
できてしまいました!
即答いただきありがとうございます!
46NAME IS NULL:2006/12/01(金) 20:21:03 ID:???
REPLACEでもいい(場合もある)
47NAME IS NULL:2006/12/01(金) 22:39:42 ID:???
>>46
kwsk
48NAME IS NULL:2006/12/01(金) 22:49:51 ID:ZjZZDHpf
>>41,42
颯爽とレスを頂き有難うございます!
早速取り掛かってみようと考えていたのですが、知識不足の為判らないことがあります
select X.* という表記方法の場合Xはテーブル名だと思ったのですが、その後にfrom TBL as X と書いてあるので解釈が判りません
MySQLの本でselect *.* という書き方をしてたのは table.fieldの時だけでしたのでかなり探したのですが未だ判らずじまいでした・・・
もし良かったらご教授おねがいします
49NAME IS NULL:2006/12/01(金) 23:29:31 ID:???
Windows で使用中にサービスが停止しました。
エラーのファイルをみると

InnoDB: Operating system error number 995 in a file operation.

とあって調べるとWindowsのIOエラーのようですが
これって頻繁に起こるものなのでしょうか。

バージョンが4.0.16と古いのですが、5.0に上げるべき?
50NAME IS NULL:2006/12/02(土) 01:24:00 ID:???
Operating system errorなんだからオペレーティングシステムを替えないとダメだろ

またはハード不良や故障。
51NAME IS NULL:2006/12/02(土) 01:32:03 ID:???
2バイトの文字セットで悩んでるのって俺だけかいT_T
52NAME IS NULL:2006/12/02(土) 10:28:46 ID:???
49です。ありがとうございます。

OSかデバイスですか。

Wikipediaには

MySQLはUnix系プラットフォーム上でもっとも実力が発揮できる実装になっているため、
なるべくUnix系プラットフォームでの利用が推奨されている。特に、MS Windows系の
実装はDBアプリケーション開発者が利用する分には十分であるが、実際に運用を
行うには安定していない。

とありますが、Windowsでは運用は考え直した方がいいですか?


53NAME IS NULL:2006/12/02(土) 14:02:12 ID:90H8Pgn+
>>52
様々なしがらみ無く考え直せるのであれば Winでの運用は避けるべきだな。
おっと、最終節見なきゃw
54NAME IS NULL:2006/12/02(土) 14:27:24 ID:nHjXT2fA
その不安定さをねじ伏せる自信と実績が
あるんであれば使えばいい。

ただそれだけ。
55NAME IS NULL:2006/12/02(土) 22:03:29 ID:???
>>48
TBLは表名
表名が分からなかったんでTBLにした
同じ表をXとYで別に参照してる
56NAME IS NULL:2006/12/02(土) 23:04:48 ID:0BhgH+5+
winMySQLAdminをアンインストールしたいのですが、
プログラムの追加と削除に項目がありません。
どうやればアンインストールできますか?
57NAME IS NULL:2006/12/03(日) 00:00:49 ID:???
>53 54

ありがとうございます。

mySQLというかRDBを扱うのが初めてなので
他の問題が発生しにくい方がいいのですが
構成を決めたのは他の人なので簡単には変えられません。

Wikipediaに乗っているUNIXの方がというのは
正式な見解なのでしょうか?それとも一般的に
経験での話しでしょうか。世の中の経験でというのであれば
説得は難しいので、現状をなんとかするしかありません。
58NAME IS NULL:2006/12/03(日) 00:54:07 ID:???
MySQLの公式ドキュメントにも書いてある罠
59NAME IS NULL:2006/12/03(日) 04:25:52 ID:???
>>52 考え直したほうがいい
60NAME IS NULL:2006/12/03(日) 04:54:03 ID:???
>>59
横レスだが、実際どんくらい違うもんなのかね?
検証サイトとかあったらいいな
61NAME IS NULL:2006/12/03(日) 07:27:02 ID:???
Windows鯖だから特に不安定って事はないと思う。
ちゃんとした機器で構成(ここがビミョー)されていて、
変なソフト入れてなきゃ…。

Windows鯖に怪しげなバックアップソフトにウイルス対策ソフトに
Javaで動く妙な監視ソフトとか、秘文やらOfficeやらPCOMMとか
ドカドカ突っ込み、日中だれかが鯖にリモートデスクトップで作業(!)している
様な「藻前はWindowsXPでも使っとけ」みたいな運用していると、
謎な障害が発生する可能性が高い(w
62NAME IS NULL:2006/12/03(日) 09:41:52 ID:???
24時間365日windows機の前に座って、不具合が起きた時にリセットできる・運用を数分止めていいなら可
63NAME IS NULL:2006/12/03(日) 10:02:16 ID:???
>>61-62
なるほど、運用保守面での差異ね。使ったことないが、Unixってそんなに落ちないのか。
経験上、WindowsはMysqlよりApacheの方が落ちる気がする。

ちなみに速度にそれほど違いは無いの?
64NAME IS NULL:2006/12/03(日) 11:01:05 ID:???
>>63
WindowsとUnixが動く、同一プラットフォームと言うのはないからその質問は無意味かと。
#あったらスマソ

自作機でWindowsとLinuxで少ないリソースでどこまでパフォーマンス出せるか?
って点ならLinuxの方が上だが、業務で使う鯖で、そんな器用貧乏度を求めても
仕方ないし。

速度に違いは処理系による感があるからなぁ、単一バッチ処理をひたすらなら
Window鯖も遅くないと思うけど、プロセスが同時に走りまくるとUnixの方が
遅くなりにくく、Jobのプロセス優先度を比較自由に変更できるので、
業務とかで「この帳票を真っ先にみたいっす」と客に言われたら、
時間のかかりそうなjobを後回しや、停止とかを気楽(?)に出来るから
単に速い遅いではなくて、ある程度以上の技術者・運用オペレータにとっては
Unixの方がヘビー(?)な業務に向いている。

Windowsでもプロセスの優先度を変更できるようベンダーが作ってあれば
いいんだが、変更できないソフトウェアとかが混じっているとイラつく事この上ない。
65NAME IS NULL:2006/12/03(日) 11:03:13 ID:???
mySQLのサイトで推奨のOSとファイルシステムみたいのは見たことあるが
Winでは運用やめとけみたいのはあるのか?
というか、そんなこと書いてていいのか?
66NAME IS NULL:2006/12/03(日) 11:19:37 ID:RsiFGmvQ
>>64
apacheはかなり強いよ。そこそこPVがあるサーバを何台か管理してるけど数年
続けて動く。1度も落ちない鯖も普通にある。
httpdっプロセスを定期的に起動しなおすので不具合を抱えこまない。
mysqlは多くて年に1度落程度落ちるかな。
67NAME IS NULL:2006/12/03(日) 15:01:14 ID:???
>>61
書き込み見てドキッとしたよ.
会社にそんなサーバー2台置いてるよ.

3年ほど動かしてるけど特にトラブルはなかったな.
68NAME IS NULL:2006/12/03(日) 15:49:25 ID:???
WInodwsならMSSQLつかっときゃいいじゃん
69NAME IS NULL:2006/12/03(日) 18:16:15 ID:???
windows運用の決めてはM$製みので固める事。
これでも不安定になるのに、MySQLなんて入れていたら、
月例アップデータで何をされるか、わかったものではありません。
70NAME IS NULL:2006/12/03(日) 19:08:42 ID:???
Win鯖使うなら素直にMSのSQLServer使うほうがいいと思うよ。
RDB製品としてはそんなに悪くないし、入門者向けの書籍や記事も多いし。

Unix系の技術者からするとMSのOSがあんまし信頼できないイメージが
出来てしまっているし、漏れもあんまいい印象がないしなー。
71NAME IS NULL:2006/12/03(日) 23:54:05 ID:???
そもそもオープンソースって、ねじ伏せる自信と実績が無いとまともに使えないだろ。
業務に使うのに、たまたま動いてますじゃ駄目だし。

MySQLに限った話ではない。
72NAME IS NULL:2006/12/04(月) 00:15:36 ID:???
オープンソースをねじ伏せる自身と実績があっても
会社組織の政治的なからみがあったりして採用されない事もあるし。

漏れの周りの例だと某地銀の元銀行員が系列ベンダー子会社に天下りして、
そのベンダー子会社がIBMの二次特約店だったりして、
腐った中国製IBMパソコン使わされたり、無意味にxServer(Win鯖)
売りつけられたり…。
でそのベンダー子会社は技術力ゼロだから、酷いシステムでマトモに
動いていなかったりするんだが、他に営業に行くときに
「○○銀行でシステム構築しました。任せてください!」と口だけ100人前で
実際は外注の派遣に尻拭いさせてたりする。
73NAME IS NULL:2006/12/05(火) 01:01:18 ID:???
49です。

MYSQLの公式ドキュメントでWindowsでの運用がどうこうという
のは見つけられませんでした。
どなたか御存知でしょうか?


運用を考えるとWindowsもUNIX系でも結局はインストールして
使うだけではだめってことですね。せっかく関わったので
学びます。
74NAME IS NULL:2006/12/05(火) 02:39:43 ID:???
75NAME IS NULL:2006/12/05(火) 22:59:38 ID:tsV4Skt/
MysqlAdministratorでテーブルの複製をするにはどうしたらよいのでしょうか?
76NAME IS NULL:2006/12/05(火) 23:02:47 ID:???
Winodwsなら、IISやMSSQLを使いましょう
WIndowsで何かをするということは、そういうこと
ApacheやMySQLは使わないほうがいい
77NAME IS NULL:2006/12/06(水) 16:54:22 ID:???
Windows にVMware入れて amp しる。
78NAME IS NULL:2006/12/06(水) 23:18:35 ID:u4BrqdS9
すいません、>>75ですがどなたかご存知ないでしょうか?
かねやんMysqlAdminにテーブルの複製及びその際のSQL表示の機能があり、
とても重宝していました。MysqlAdministratorにもあったら嬉しいのですが。
79NAME IS NULL:2006/12/07(木) 12:38:31 ID:???
Windows上でMySQL動かしてる人少ないだろうし、ましてやツールの話。
レスは期待できないと思うが。
80NAME IS NULL:2006/12/07(木) 16:39:33 ID:???
>>75
オレはコンソール派だが、SQLyog ってチェックした?
http://www.webyog.com/en/
81NAME IS NULL:2006/12/08(金) 01:29:41 ID:???
>>78
かねやんのは、推測だけど 複製は複数SQL発行で
擬似的にやってたんではない?
82NAME IS NULL:2006/12/08(金) 13:40:23 ID:???
>>79
別にlinuxのmysqlだって管理できる訳だが。
83NAME IS NULL:2006/12/08(金) 23:52:41 ID:???
MySQL5 で phpMyAdmin からデータベースを作成しようとしています。
照会順序の文字コードで utf8_unicode_ci と utf8_general_ci で何か差はありますか?
合計欄には utf8_general_ci が書かれています。
UTF-8 はどちらが一般的なのでしょうか?
84NAME IS NULL:2006/12/09(土) 01:27:32 ID:???
>>83
俺は総合職志向だからジェネラル
85NAME IS NULL:2006/12/09(土) 05:37:57 ID:???
すんません、いま5.0と5.1とではどっちの方が安定版なんですか?
86NAME IS NULL:2006/12/09(土) 08:31:29 ID:???
4のほうが安定。
87NAME IS NULL:2006/12/09(土) 11:22:31 ID:???
4.1で一行に8000byteまでしか入らないとかっていうのは修正されているの?
88NAME IS NULL:2006/12/09(土) 13:09:37 ID:???
>>84
職志向は不明だけど、generalの方が良いってことですかね。
89みるっひ:2006/12/09(土) 13:22:27 ID:28ExNdMW
navicast上でファイルをコピーしていたら、異常終了し、次に立ち上げたときは参照で開いていたファイルが消えていました。
どなたか、復旧する方法をご存知ないですか。
90NAME IS NULL:2006/12/09(土) 17:06:56 ID:Ktzg835s
WindowsXPのローカルで使っているMYSQL5が5GBを超えまして、
他のPCにバックアップしたと考えております。

mysqldumpコマンドを使ってSQL文をバックアップするのが、時間が掛かってしますので、
{$MySQL}\data以下のフォルダをバックアップして、
何かあったときに、dataフォルダを入れ換えたらちゃんと復元されますか?

バックアップの方法でmysqldump以外にはないのでしょうか?
# というのは、データの中に文字化けする文字列が含まれているものがあり、
# mysqldumpでSQL文を出力しても、SQL文が破損('が化け文字のせいで無くなってしまう)
# して完全に復元できないので困っています。

宜しくお願いします。
91NAME IS NULL:2006/12/09(土) 17:33:58 ID:???
他のPCにレプリケーション設定した方がよくね?
92NAME IS NULL:2006/12/09(土) 18:21:50 ID:???
my.iniで
default-character-set=sjis
これを
default-character-set=EUC-JP
に変更するとMySQL起動時にエラーが出るんですけど、
EUC-JPは対応されていないのでしょうか?
93NAME IS NULL:2006/12/09(土) 18:24:03 ID:???
URLを入れる項目があり、URLは空白でも構わないが、重複は不可
にしたいので、UNIQUEを付けました。
空白の2回目以降にもエラーが出てしまいます。
UNIQUEは、空白もだめなのでしょうか?
94NAME IS NULL:2006/12/09(土) 18:37:28 ID:???
>>93
UNIQUE = 唯一無二
という意味ですよ旦那
95NAME IS NULL:2006/12/09(土) 19:17:17 ID:???
>>92
euc-jpは使えるがEUC-JPじゃないだけ。
つかマニュアル読んだ?
96NAME IS NULL:2006/12/09(土) 22:11:49 ID:???
アフォが増えたな。
特集記事でも出たのか?
97NAME IS NULL:2006/12/09(土) 22:47:21 ID:???
専門学校や大学のプログラミングの授業でデータベースアクセスが登場する時期。
98NAME IS NULL:2006/12/10(日) 00:30:55 ID:???
>>90
MyISAMのデータベースならバイナリーバックアップで
何度かリストアもしてるが問題ない。
データだけじゃなくてMySQLサーバ関連もバックアップしてるけど
最低限設定ファイルがあれば大丈夫だと思うけどね。
あと権限データベース(mysql)はdumpしておくこと。
まあでも>>91が、設定は結構簡単でリストアも楽かね。
99NAME IS NULL:2006/12/10(日) 00:52:33 ID:???
>>93
空白ってのがどういう物なのか判らないが、Nullなら幾つでも持てるだろ。
ANSI/ISO SQL標準では、UNIQUEの対象にNullは含まない。
Oracle、PostgreSQLはそうなっているがMySQLは忘れた。
ここ見るとそうなっていそう。
http://dev.mysql.com/doc/refman/4.1/ja/create-table.html
> UNIQUE インデックスでは、インデックスのすべての値に
> 重複がない状態でなければならない。ただし、例外として、
> そのインデックスのカラムの 1 つで NULL 値が格納可能な場合、
> 複数の NULL 値を格納できる。
100NAME IS NULL:2006/12/10(日) 08:18:16 ID:???
2chのdatファイルをmysqlで管理したいんですけど、
perlでもなんでもいいんですけどdat->mysqlのスクリプトかなんかってありますか?
101NAME IS NULL:2006/12/10(日) 09:05:45 ID:RuiX/LUR
>>91
>>98
レスありがとうございます。
レプリーケションについて調べてみましたら、非同期でも出来るんですね。

ローカルonlyのMYSQLなので、常時2台も立ち上げるのは辛いと思っていたのですが、
これなら、いけそうです。ありがとうございました!
102NAME IS NULL:2006/12/10(日) 10:48:03 ID:???
そうか、冬休み前にデータベースの授業で、課題提出が冬休み明けってやつか。
宿題スレ無いけどガンガレ。

相性悪いと思った香具師は、就職後にデータベースの仕事はしないでくれ(w
103NAME IS NULL:2006/12/10(日) 20:30:33 ID:???
>>99
null入れたら、うまくいきました。
ありがとうございました。
104NAME IS NULL:2006/12/11(月) 19:28:01 ID:???
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)
105NAME IS NULL:2006/12/11(月) 20:07:37 ID:???
printf("%s", 0);
106NAME IS NULL:2006/12/11(月) 20:46:32 ID:???
すみません。質問させてください。

VBA+ado(2.8)+MySQLODBCdriver3.51にてlocalhostの
mysql(version 5.0.27)のレコードを更新しようとして
いるのですが、うまくいきません。
下記の構文でうまくいかないのですが、レコードの追加(.AddNew)
を書き加えるとレコードの追加に関しては成功しますし、
更新も.Execute ("UPDATE〜の方を使えばうまくいきます。
(また下記の構文で.mdbファイルは更新できました。)

なにか思い当たる原因などありませんでしょうか。

つづく・・・
107106:2006/12/11(月) 20:48:08 ID:???

Private Const DBsource = "dsn=MYSQL"
Dim objCon As ADODB.Connection
Dim objRS As ADODB.Recordset
Set objCon = New ADODB.Connection
Set objRS = New ADODB.Recordset

objCon.Open DBsource
objRS.ActiveConnection = objCon
objRS.Source = "SELECT * FROM table1 WHERE id = 47"
objRS.CursorType = adOpenKeyset
objRS.LockType = adLockPessimistic
objRS.Open

(objRS.addnew '<-この行を有効にすれば更新はうまくいきます)
objRS!hoge_name = "hogehoge"
objRS.Update

objRS.Close
objCon.Close
Set objRS = Nothing
Set objCon = Nothing

108NAME IS NULL:2006/12/11(月) 21:11:08 ID:zMnd3KGN
レベルの低い質問ですみません。
レンタルサーバ上のMySQLに、MyODBC経由で実験的にPOSレジソフトからアクセスしています。
今ひとつ接続が安定せず、1日で数回「MySQL server has gone away」エラーでアプリが強制終了します。
立ち上げなおすと普通に動きます。接続が切れるのは不定期です。
どんな原因が考えられるでしょうか。
(サーバーはLinux クライアントはwinXP CATVの常時接続です。)
(Mysqlは4.xx)
109NAME IS NULL:2006/12/11(月) 22:09:52 ID:???
>>108
質問のレベルはよしとして、まずはググッた?
まんま、"MySQL server has gone away" でググレば先頭にどんぴしゃな情報が出るが。
偉人が出るぞ。
110NAME IS NULL:2006/12/12(火) 01:29:52 ID:axPuhmGY
108です。
早速ありがとうございます。
ぐぐってみました。4.1のリファレンスが出てきました。

タイムアウトで生じるエラーのようですが、いまひとつわからないので教えてください。

デフォルトで8時間何も無いとタイムアウトですが、
当方のケースの場合、数十分程度でエラーが出ます。しかも間隔が一定ではないようです。
サーバー側の設定も調べてみましたが、とくにデフォルトの設定を変更してはいないようです。

データーも、商品の単価や個数といった小さなものです。

ちなみにソフトはこれです。 ttp://www.nyushukka.com/

lローカルでMDBベースで使っていたときは全く問題ありませんでした。
サーバーの他のデーターベースは普通に動いているので、たぶん問題ないと思います。
かねやんなどをつなぎっぱなしにしても大丈夫です。

ODBCの設定などでなんとかなるでしょうか? お聞かせください。
111NAME IS NULL:2006/12/12(火) 02:23:03 ID:???
>>110
ぐぐったら出てきたであろうページの下の方に、事例や調べ方が
出てるんだから、まずそこに書いてある事をやってみるべきでしょ。
112NAME IS NULL:2006/12/12(火) 02:34:59 ID:ypiJkJfO
そんなことよりこれやろうぜ
◇◆元祖MMORPGガディウスがなんと今だけ無料◆◇
(12月13日までだから急ごう!)
長い歴史を持つガディウスがなんと5周年記念につき2ヶ月間無料!
とてもおくが深い対人戦!ノーペナルティのPK!とても使いやすいチャット!
どこか懐かしい2Dなので古いパソコンでも動作!なんとメモリ64MでOK!

始めようと思った方は今すぐ公式からSTART!!!

wiki http://www6.atwiki.jp/godiuswiki/
↑始める前に見ておこう!公式もここからいけるよ!

初心者用スレ  http://game10.2ch.net/test/read.cgi/mmo/1165545550/
↑解らないことがあったらここで聞こう!お兄さんが優しく教えてくれるよ!


SS   http://pc.watch.impress.co.jp/docs/article/991224/ff8_1.jpg
     http://cyan.gazo-ch.net/bbs/17/img/200612/1122366.jpg
     http://cyan.gazo-ch.net/bbs/17/img/200612/1110982.jpg
     http://www6.atwiki.jp/godiuswiki/?cmd=upload&act=open&pageid=34&file=img03_big.jpg
↑なんと見た目は自由に変えられる!その組み合わせ数なんと10億通り以上
国家対戦 http://big.freett.com/save/050121war80over.wmv
↑なんと200対200の大規模な国家対戦が可能!白熱の対戦をごらんあれ!
113NAME IS NULL:2006/12/12(火) 16:24:15 ID:???
>>112
期末テストが終われば暇なだけの厨房乙w
1146:2006/12/12(火) 21:25:17 ID:???
>>12
EXPLAINだけど、もしかしてMySQLって、
1行もデータがないときは 調べれないの?
11512:2006/12/12(火) 21:31:20 ID:???
>>6
そう。
mysql的に1つも無いとわかりきっている where だと EXPLAIN で調べられない。
116NAME IS NULL:2006/12/12(火) 21:37:51 ID:???
はて、verちがいかな。エラーにはならないけど。
117NAME IS NULL:2006/12/12(火) 21:41:09 ID:???
ああ、出た出た。116は無視しておくれ、スマン
118NAME IS NULL:2006/12/12(火) 22:20:31 ID:???
CREATE TABLE s04e137book(id INT UNSIGNED PRIMARY KEY, title VARCHAR(100), price INT UNSIGNED);

これを数値型のフィールドを基準にデータを並び替える問題を作成する問題とSQL
そして識別番号が大きい順番から二つのレコードについて、値段を1000に変更するSGLを作成する方法

いまいちよくわからないので、ご指導願います
119NAME IS NULL:2006/12/12(火) 22:26:32 ID:???
>>118
ニホンゴワカリマスカ?
120NAME IS NULL:2006/12/12(火) 22:29:24 ID:???
>>119
自分の理解能力が恐らく不足しているのでしょうけど
それでもわからなかったので…
121NAME IS NULL:2006/12/12(火) 23:07:15 ID:???
すれ違いでした申し訳なく
122NAME IS NULL:2006/12/13(水) 12:27:54 ID:???
>>118
質問内容を良く読み直し正しい日本語で質問せよ。
123NAME IS NULL:2006/12/13(水) 16:56:41 ID:CIjp93Pg
OracleでいうとEMP表とかDEPT表でサラリーがどうたら、部署がどうたらできるような
Mysqlを勉強するのに手頃なサンプルDBってないかな?
124NAME IS NULL:2006/12/13(水) 19:44:50 ID:???
>>123
オラの『初めてのSQL』(定価2,520円)、そのサンプルDBが落とせる。
それで勉強したまえ。
http://www.oreilly.co.jp/books/4873112818/
http://examples.oreilly.com/learningsql/LearningSQLExample.sql

ちなみに例題として取り扱うのは銀行業務
125NAME IS NULL:2006/12/13(水) 19:54:24 ID:???
>>118
ここで質問をする前に日本語の勉強をしてこい

誘導先↓

■日本語が難しくて困ってます■
http://academy4.2ch.net/test/read.cgi/gengo/1088170225/
126123:2006/12/13(水) 22:34:17 ID:???
>>124
ありがとう、外の人。
127NAME IS NULL:2006/12/14(木) 00:22:28 ID:???
なんか一気に質問スレ化してるな。
おまいら課題ガンガレ。

不可者は仕事でDB使うなよ(w
128NAME IS NULL:2006/12/14(木) 11:24:42 ID:KImeLr6k
教えてくれ。
fedora3にMySQL入れなくてはならない事になったのだが、
rpm -ivh MySQL-server-standard-5.0.27-0.rhel3.i386.rpm
error: Failed dependencies:
perl(DBI) is needed by MySQL-server-standard-5.0.27-0.rhel3.i386
と出たのだが、俺は何をすべきか?
perl DBIというのをどこかから探してきて先に入れればいいのか?
どこにあるんだ?
129NAME IS NULL:2006/12/14(木) 11:49:27 ID:???
CPAN
130NAME IS NULL:2006/12/14(木) 14:09:55 ID:???
重複した要素の場合、表示しないというふうにやりたいのですがどうすればいいでしょうか?
SELECT `name` FROM `dog_tbl` WHERE `birthday`< 2000-1-25 and `birthday`< 2006-12-14;
このように2000年の1月25日から今日までの誕生日で検索してどんな名前の犬がいるのかと、同じ名前の犬の数を表示したいのです。
131NAME IS NULL:2006/12/14(木) 15:27:59 ID:???
>>130
group by 犬の名前
132131:2006/12/14(木) 15:30:28 ID:???
>>130
具体的には↓
SELECT name,count(*) FROM dog_tbl WHERE birthday < '2000-1-25' and birthday < '2006-12-14' group by name;
133NAME IS NULL:2006/12/15(金) 02:23:33 ID:???
課題を書くと答えを教えてくれるのか
みんな優しいなぁ
134NAME IS NULL:2006/12/15(金) 03:15:56 ID:???
俺なんか課題出した後で2ch監視してても誰も来なくて
翌週提出日が来ても誰ひとりとしてやってこなくて泣きそうになった
135114:2006/12/15(金) 08:33:33 ID:???
>>115
ありがとう
実験用にダミーデータを入れてから検証することにしますよ

こういうのって本家のFAQかなんかに書いとけばいいのにな
メールしとくかな
136NAME IS NULL:2006/12/16(土) 09:27:17 ID:A843xKfr
すみません。基本的なことかもしれませんが質問です。
mysqldumpでバックアップをとる際に、レプリケーション構成の場合はスレーブ側で
実行しても良いのでしょうか。引数に「--master-data」を指定するのでマスタ側で
実行する必要があるのかと悩んでいます。

実行するコマンドは以下の通りです。
$ mysqldump --user=root --password=password --socket=/tmp/mysql.sock --single-transaction \
  --master-data --flush-logs --hex-blob --default-character-set=utf8 --all-databases \
  --result-file=/var/backup/mysql_xxxx.dmp

なお、スレーブ側の設定にlog_slave_updatesはありません。
137NAME IS NULL:2006/12/16(土) 10:12:36 ID:???
MySQL 4.1.20
すいません、今度PCを買い換えようと思っています。作成しているデータベースについてはmysqldumpでバックアップを取ってるから
それをインポートすれば良いと思うのですが、それ以前のユーザーに関する設定などはどのようにバックアップするんでしょうか?

ついでにコンソールから
show databases; とうっても自分の作ったデータベースしか見えないんですけど、確かmysqlって名のデータベースありませんでしたっけ?
dataフォルダにはmysqlってフォルダはあるんですが。
138137:2006/12/16(土) 10:19:13 ID:???
>確かmysqlって名のデータベースありませんでしたっけ?

についてはrootで入ったら見れました。
139137:2006/12/16(土) 10:42:05 ID:???
このmysqlデータベースを通常通りバックアップ・インポートすればいいみたいですね。
お騒がせすいませんm(__)m
140NAME IS NULL:2006/12/16(土) 11:11:59 ID:???
MySQLをlinuxやらにインストールした場合の
/etc/my.cnf の文字コード設定の意味がよく分からないのですが、
あれは、「データの文字コードを勝手に○○○にしますよ」という
意味なのでしょうか?

例えば、ujis にした場合、
保存データを勝手にEUC-JPにしちゃいます、ということなのでしょうか?
色々なページを見ましたが、イマイチ理解できません。
ujis にした場合は、UTF-8で保存するのは不可能なんでしょうか?
141NAME IS NULL:2006/12/16(土) 11:28:33 ID:???
適当なテストデータベースでも作成して試してみればいいじゃん。
親切な人がいると思ったのか質問の嵐だな…。
質問答えた人は親切心からなんだろうけど、スレが質問ばっかになるのはげんなりだ。
142NAME IS NULL:2006/12/16(土) 11:33:34 ID:???
試してみればいいじゃん、と答える人がよくいますが
かなりのDQN発想ですよね
143NAME IS NULL:2006/12/16(土) 12:33:24 ID:???
試すのが一番理解が早いだろ
なんでもそうだけど
受験勉強でもそうだっただろw
千畝から、こういうときはこうするんですよって教えてもらっても
数日後にはさっぱり忘れちゃってる
先生に教えてもらったことを、実際に鉛筆もってやって
はじめて身につくもんだ
わかった?ぼくちゃん

身に着ける必要がないなら、誰かさんに金はらってやってもらいなさい
144NAME IS NULL:2006/12/16(土) 15:21:03 ID:???
爆発はしないからやってみろ

他人からの伝聞の時点で、伝言ゲーム同様に正確に伝わってなかったりするし。


テスト環境と運用環境の分離ができないならオープンソースは使ってられないと思うぞ。
145NAME IS NULL:2006/12/16(土) 19:46:02 ID:???
無料こそオープンソース採用の理由なのに、鯖にお金かける訳無いじゃん。
開発機がそのまま運用機になって、そのままだよ。テスト機なんて買うことは有りません。

リナクスでのインスコ話は、マイエスクーエルに関係無いから、リナ板で訊いた方が良いよ。
146NAME IS NULL:2006/12/16(土) 21:02:00 ID:???
なんか頭悪そうだなぁ…
147NAME IS NULL:2006/12/16(土) 21:13:00 ID:???
運用後に発覚したバグ修正や機能追加はどうするんだ…。
長期間業務止めて大丈夫、もしくはバグは絶対ない、機能も追加しないっていうならまぁありかもしれないけど。
148NAME IS NULL:2006/12/16(土) 21:32:09 ID:???
俺の会社の場合は、ハードを買えば仕事が進むと思っている馬鹿が多い。
予算枠の中で鯖と開発機と端末を確保するとS/Wはオープンソース採用になってしまう。

泣けるぜw

149NAME IS NULL:2006/12/16(土) 23:10:30 ID:???
別にサーバーサイドのソフトがオープンでも構わんけどな…。

ただ、開発端末PCが低スペック(メモリ256MBとか)でFefora5とかで開発汁とか
言われるとモニョるモノがある。
150NAME IS NULL:2006/12/17(日) 00:29:10 ID:???
オープン採用で日々のメンテのコストはサビ残で負担ですか。
もうアフォかと。

ちゃんと商用ソフト買って、年間サポート契約結べば何もしなくて良くなるのに。
151NAME IS NULL:2006/12/17(日) 02:26:31 ID:???
ちゃんと商用ソフト買って、年間サポート契約結ぶとこんな効果が:
・サポートの電話がつながらない
・サポートがこちらの言う事を理解しない
・二言目には「それはサポート外」ですと言う
・状況を尋ねるといつも「開発元に問い合わせ中です」
・結局電話で解決した事は一度もない
・なかなか来てくれない
・来てもトラブルが解決しない
・それどころか悪化させる
・そういえば先日サポートが来て何かいじってから調子が悪い
・サポート担当の顔を見るのも声を聞くのも嫌だから電話したくない
・最近胃が痛い
152NAME IS NULL:2006/12/17(日) 03:58:26 ID:???
オープンソースを採用するとこんな効果が:
サポート先がそもそも無い。
自分でなんとかするしかなくて、膨大な対応時間とサービス残業が発生。
開発者にメールしても、こちらの言う事を理解しない
開発者が二言目には「それは仕様です」と言う
開発者に状況を尋ねるといつも忙しいと言う。
結局、開発者にメールして解決した事は一度もない
開発者が出張サポートしてくれることはほぼ無い。
開発者にパッチを送っても採用せずにいつまでもトラブルが解決しない
それどころか、変な機能付けて余計にバグが増えてリリースされる。
開発者が無責任でソースコードのメンテナンスが行われない。
そういえば先日バージョンが上がってから調子が悪い。
もうオープンソースなんて絶対導入しないと心に決める。
最近胃が痛い。出社するのが嫌になる。
153NAME IS NULL:2006/12/17(日) 09:50:44 ID:???
サービス残業はオープンソースとはなんにも関係ない訳だし、
そんなDQNな開発者に開発依頼する方もDQNだな。
154NAME IS NULL:2006/12/17(日) 12:25:38 ID:???
つまりオープンソースを採用するのはDQNな開発者ってことだよ。
自分の対価と言うか飯の種が何なのかを考え直した方が良い。

一時間かけてソースを修正した対価は無料という対価で満足できるのか?
一日かけてソースを修正した対価は無料という対価で満足できるのか?
一週間かけてソースを修正した対価は無料という対価で満足できるのか?
一ヶ月かけてソースを修正した対価は無料という対価で満足できるのか?
一年かけてソースを修正した対価は無料という対価で満足できるのか?
10年かけてソースを修正した対価は無料という対価で満足できるのか?
155NAME IS NULL:2006/12/17(日) 12:30:30 ID:???
>>151
不覚にも笑ってしまった自分が悔しいw
156NAME IS NULL:2006/12/17(日) 12:30:59 ID:???
とりあえず、154がDQNだと言う事はよく解る。
157NAME IS NULL:2006/12/17(日) 12:34:31 ID:???
MySQLは商用サービスもやっているわけで、対価が無料とかホザいているアフォがいるな
158NAME IS NULL:2006/12/17(日) 12:42:36 ID:???
SQL文的には等価結合
(単純にテーブル1.フィールド=テーブル2.フィールドをWHERE句に追加)
が非常に使いやすいのですが、
一方が存在しない場合に結果に含まれないのは困ります。

一方で外部結合は、JOIN句を使う必要があり、
極力使いたくないです。

他に良い方法内でしょうか。
159NAME IS NULL:2006/12/17(日) 13:11:14 ID:6/NZmALt
飯は卵かけが好きです
160NAME IS NULL:2006/12/17(日) 13:29:11 ID:???
>>158

【帰ってきた】SQL質疑応答スレ 3問目
http://pc8.2ch.net/test/read.cgi/db/1160458216/
161NAME IS NULL:2006/12/17(日) 20:18:59 ID:???
MySQLの商用サービスって、不具合起きたときに駆けつけてくれるのか?
リナックスみたいにメールだけじゃないの?
162NAME IS NULL:2006/12/17(日) 21:34:46 ID:???
不具合が起きたときに自力で対処しない(できない)おまえは向いていないから辞めた方がいいよ。
163NAME IS NULL:2006/12/17(日) 21:37:25 ID:???
なんでOSサポートとサーバーソフトウェアとサポートを同列に考えるのか知らんが、
RHELは電話サポートもある。HPとRHELならトラブル起きたら駆けつけてくれる。
MySQLは知らんけどOracleは不具合があったら駆けつけてくれるのか?
テクニカルサポートは24Hやってるのは知ってるが駆けつけてくれた事はないんだが。

なんか業務をしたことないヤツに鈎って「サポートが」とかトンチキな事言ってるな。
164NAME IS NULL:2006/12/17(日) 21:42:05 ID:???
あ、ちなみに漏れの経験ではOracleの24Hサポートは
24時間「質問を受け付けてくれる」だけでソッコー解決するワケじゃないからな。

サポートに変な幻想持たない方がいいぞ。
現実はサポートに聞くよりもググる方が解決早いからな。(w
165NAME IS NULL:2006/12/17(日) 22:30:36 ID:???
つか、ソフトウェアの問題で駆けつけてもらって何か意味あんの?
端末丸ごと貸して、あとよろしく!とかそんなん考えてる?
166NAME IS NULL:2006/12/18(月) 00:13:44 ID:???
ぶっちゃけなー、例えばIBMとかの保守契約(ソフトのも)も入っていて、
不具合があってもすぐに解決は不可能なんだけどな。
まず、IBM側の不具合と証明するまでに凄く時間がかかる。と言うか
その不具合報告する技術者のレベルがIBMの技術担当と同じレベルの
会話が出来んと、問題の切り分けが出来んワケだから、>>161みたいな
レベルの技術者ではサポート契約結んでいても、無駄になる可能性と言うか
>>151みたいな状態になる事多いんだよ。

これでもIBMは対応してくれる方だと思うけど、これが他企業だとホントに酷い例があるからなー。
167NAME IS NULL:2006/12/18(月) 03:52:54 ID:???
168NAME IS NULL:2006/12/19(火) 06:31:47 ID:???
オラクルの場合はベンダーがサポートしてくれるよ。
NECでも富士通でも電話すれば飛んでくるサービスが有る。
169NAME IS NULL:2006/12/19(火) 11:10:14 ID:???
でもある程度のトラブルなら自力で復旧できないとなぁ。
170NAME IS NULL:2006/12/19(火) 17:07:41 ID:???
>>168
結構な費用がかるんでしょうか?
171NAME IS NULL:2006/12/19(火) 21:40:23 ID:???
この場合のベンダーってNECはちょっと別にして富士通がくるの?
Oracleを売ったベンダー(w)がくるの?
それともOracleの正社員がくるの?

OracleがRHELをサポート開始したのは知ってるけど、駆けつけるまで
しなかったと思った。
172NAME IS NULL:2006/12/19(火) 22:07:49 ID:???
オラクルマスターと言えども、操作に長けているだけで、バグを熟知しているわけではないからな
173NAME IS NULL:2006/12/19(火) 23:28:00 ID:???
実際は単にオラクルマスターの資格をもったオラクルを納品した
下請けベンダーが駆けつけるだけ、って気がする。

で、バグはOracle本社に問い合わせるだけな気ガス
174NAME IS NULL:2006/12/20(水) 03:28:16 ID:NK+pn7NI
数日苦しんでた文字化けが解消した!
ここ(ttp://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_50)見て
DBに接続した直後に「SET NAMES utf8」を送ったら直ったんだけれど、
この一文が何をしているのか、ググっても分かりませんでした。
MySQLの何に対してutf8だゴルァー!!してるのでしょうかね?
#つーか、接続する度に書くのかこれ…??

>>149
モニョるって、響きがなんか(゚∀゚)イイ!!
175174:2006/12/20(水) 05:54:15 ID:???
調べがつきました。
検索キーワードを区切らな過ぎてたみたいです
本すれでお騒がせしてしまいすいませんでした。
176NAME IS NULL:2006/12/20(水) 10:39:54 ID:???
>>174
「SET NAMES utf8」ってサーバに接続す度に実行しないといけないんですか?
177NAME IS NULL:2006/12/20(水) 11:21:03 ID:???
>>176
まだ1度接続するだけのコードしか書いてないので自分自身は分かりません。
調べた中では、接続する度に〜的に書いてあったと思います。
ここ(ttp://dev.mysql.com/doc/refman/4.1/ja/charset-connection.html)の一番下を見ると
設定ファイルに書く事で毎回ソース内に記述しなくても良くなるらしいです。
ウチではうまく機能しませんでしたが試してみては?
178NAME IS NULL:2006/12/20(水) 13:40:26 ID:???
my.cnf で正しい default-character-set を設定し、クライアント側で正しい
文字コードでデータをセットし、クライアント側で正しい文字コードでデータ
を取り出せば文字化けすることはない。
179NAME IS NULL:2006/12/20(水) 17:09:25 ID:uZdRfTAd
mysql5について質問です。

datetime型のフィールドに対するインデックスでcolumn lengthを
指定できるようなので、hourまででgroup化させるために13を
設定値にしたのですが、explainで確認してみたところ思うような結果が出ず
悩んでおります。

わかる方がいらっしゃいましたらご教示ください。
1801:2006/12/20(水) 20:03:27 ID:???
>>174-177

>3の先の
「文字コードの自動変換機能による弊害(文字化け) 」嫁
181179:2006/12/20(水) 23:04:42 ID:uZdRfTAd
>>179です。
マニュアル探してるんですがdatetime型にインデックスの長さを設定できるという
記述が見つけられない・・・。でもMysql Administratorで確かに設定できるんですよ。

てか確認したいんですが、datetime型のフィールド(例えば 2006-12-20 20:00:00)に
lengthを13でインデックスつけたら"2006-12-20 20"←こんな感じで時間までのところで
インデックスを持ってくれると解釈してるんですけど、違うのでしょうか?
182NAME IS NULL:2006/12/20(水) 23:07:57 ID:???
だからさ、開発者でもないおまいらがどうやってMySQLのトラブルを自力で直せる訳?

全部utf8にしとけば、変換されることが無いから化けないってだけ。
正しい文字コードなんて無いし。日本語の正しい文字コードって何だよ(w JISでいいの?
183137:2006/12/20(水) 23:10:35 ID:???
頼むから文字化けの問題に関しては専門のスレを立てて、そっちでやってくれないかな
184NAME IS NULL:2006/12/20(水) 23:16:30 ID:???
文字も化けちまうこんな世の中じゃ
185NAME IS NULL:2006/12/21(木) 00:48:24 ID:???
>>182
コンテキスト理解しようぜ。
186NAME IS NULL:2006/12/21(木) 03:41:14 ID:???
>>182
漏れはソースレベルでいじることあるけど?
187NAME IS NULL:2006/12/21(木) 04:51:04 ID:???
データベースを他のPCで使いたいとき皆どうしてる?
188NAME IS NULL:2006/12/21(木) 09:20:53 ID:???
MySQLってソースあったっけか
189179:2006/12/21(木) 10:44:46 ID:JhSdq+iF
>>179>>181です。
レスがないということは皆さんあまりやらない手法なのですかね。

例えば年別・月別・日別・時間別の集計を前提としたアクセスログを作る際に皆さん
どうやっているのでしょうか?datetimeのフィールドとは別に
year,month,day,hourのフィールドを作ってインデックスをつけているのでしょうか。
190179:2006/12/21(木) 12:15:55 ID:???
自己レスです。やはりdatetimeのインデックスに長さ指定はできないようです。
お騒がせしました。

ということは>>189に書いた方法しかないのですかね?
191NAME IS NULL:2006/12/21(木) 13:10:39 ID:???
>>189
量がたいしたこと無ければ日付を編集してgroupby
192NAME IS NULL:2006/12/21(木) 14:38:35 ID:???
193179:2006/12/21(木) 15:42:33 ID:???
>>191
量がたいしたことあるんですよね。。試しにMIDや日付関数でやってみたら激重でした。
仕方ないのでdatetimeのフィールドとは別に"2006122014"みたいな文字列の
フィールドを別途作成し、それでINDEXしようと思います。

しかし他に方法は無いのかなあ?絶対ありそうなんですが。
194NAME IS NULL:2006/12/21(木) 17:24:48 ID:???
>>193
datetime と同じ内容の年月日時の4フィールドを
その為だけに追加。 あえて冗長にすれば?
195194:2006/12/21(木) 17:32:23 ID:???
それか datetimeだけなら

select DATE_FORMAT(datetimeeeee,'%Y/%m') as A , count(*)
from hoge
group by A

でindex効いた様な気がする。
(indexを効かした後にグループ化)
196超初心者:2006/12/21(木) 17:41:48 ID:???
http://dev.mysql.com/downloads/mysql/4.1.html

fedora coreにmysql4.1を
入れようかと思っているのですが、どれをインストールすればよいのでしょうか。
リンクがいっぱいあって何が何やらわからないです。orz
レベル低い質問で申し訳ないですが、ご教授おねがいいたします。
197NAME IS NULL:2006/12/21(木) 21:36:26 ID:???
自分の環境に合わせて必要な物インストールしろ。
そしてすみやかにここから去れ。
自分の環境すらも分からないなら単位と卒業はあきらめろ。
「fedora core」しか情報ないのに答えられるわけがない。
198NAME IS NULL:2006/12/21(木) 22:08:53 ID:???
フェどらってMySQLはいってなかったっけ?
199NAME IS NULL:2006/12/21(木) 22:33:57 ID:???
>>196
し・る・か

>>197
お前も去れaho

>>198
はいっとる。
200NAME IS NULL:2006/12/22(金) 00:02:04 ID:???
>>199
おーけー、任せろ、ahoな俺は全力撤退。
スマソ、FedoraならどのバージョンどのCPU向けの物でも必ずMySQL4.1系がはいってるとはしらなんだ。
201NAME IS NULL:2006/12/22(金) 00:05:00 ID:???
>>200
ジャマ
202NAME IS NULL:2006/12/22(金) 01:28:27 ID:???
>>200
Fedora5と6に入ってるのはMySQL5
# yum -y install mysql-server
203NAME IS NULL:2006/12/22(金) 17:49:17 ID:???
インサートすると同時に
そのインサートしたデータのauto_increment数字を確実にクエリとしてほしいのですがどのような方法があるでしょうか?
インサート後、すぐにセレクトする方法しか思いつきません。
ご教示お願いします
204NAME IS NULL:2006/12/22(金) 18:57:06 ID:???
>>203
マニュアル嫁
205NAME IS NULL:2006/12/22(金) 19:31:43 ID:???
>>204
ttp://dev.mysql.com/doc/refman/4.1/ja/insert-select.html
読みましたが、さっぱり要領を得ないので…
お願い致します
206NAME IS NULL:2006/12/22(金) 20:54:25 ID:???
PCにmysql入れて、20フィールド・10万レコードくらいのcsvファイルをインポートするのに、2時間かかります。SELECT文で1万レコードくらい抽出するクエリを発行すると、これまた1時間くらい時間がかかるんですが、処理時間はこんなものでしょうか?

PCのスペックは以下です
デスクトップタイプのノートパソコン
P4 3GHz HT対応
RAM 1GB
XP SP2
mysql5を使用中

ディスクアクセスの弱いノートパソコンで、mysqlを動かすにはインポートするデータのレコード数が多すぎるだけなのか、mysqlの設定次第で劇的にクエリに対するレスポンスが変わるものなのか図りかねています

ノートパソコンにmysql入れてテーブル設計するなら、事実上のレコード数上限値は○○くらい!というだいたいの相場感覚をおもちの方がおられるなら、どうかご教授下さい。
207NAME IS NULL:2006/12/22(金) 21:05:30 ID:???
>>206
1万レコード程度で1時間ってありえなす
いったいどんなデータだろ
インデクスとかちゃんとつけてる?
208NAME IS NULL:2006/12/22(金) 21:12:18 ID:???
PCにウイルスバスターとか入れて、ファイル更新される度にウイルス検査でもしてんじゃねーの?(w

MySQLでなくノートじゃないが、DB2で普通のPC(?)だとフィールドが150くらいで
20万件くらいのデータだと3分くらいでロードが終わって、SELECTは数秒だ。
209208:2006/12/22(金) 21:18:29 ID:???
漏れのPCのスペックは
Athlon64 3200+、メモリ2GB、Windows2000sp4
HDDは160GB,320GBとか適度にバラして使ってる。

206の速度は異常だと思うけどノートでRDB使うにしても簡単なブログとか
掲示板とかそういう用途で使う方がいいんじゃね?
ウン万レコードを読み書きってのはあんま向かん希ガス
210NAME IS NULL:2006/12/22(金) 21:21:58 ID:???
早速のお返事ありがとうございます。

>>207
あ〜。付けてないかも。
インデックスを付けることを意識していないので、ついてないと思います。
付けてから試してみます。

>>208
確かに会社支給のノートPCなんで、ノーd先生が入ってます。
リアルタイムスキャンはOFFってはいますが。。
まあ関係ないですよねw

さらに質問になりますが、
20フィールド&10万レコードくらいのデータをインポートした後、
1枚のテーブルのサイズが4.5Gbyteくらいになってます。
各フィールドはvarchar(40)×10+DOUBLE×10くらいのフィールド構成なのですが
このサイズは異常ではないでしょうか?

今はPerlでcsvファイルを解釈しながらmysqlにデータをインポートしていますが、
諸事情によりDBIが使えないので、ODBCでDBを制御していますが、
パフォーマンスはODBCよりDBIの方が良いんでしょうか?
211206+210:2006/12/22(金) 21:28:50 ID:???
補足です。

元のCSVファイルは、圧縮しない状態で300MBくらいなんですけど、
DBに入れると、膨れるもんでしょうか?

charの長さなどは、char(40)くらいです。
212NAME IS NULL:2006/12/22(金) 21:53:52 ID:???
まず、ノートを辞めて、安鯖買ってくる。
話はそれからだな。
213208:2006/12/22(金) 21:57:37 ID:???
あのさぁ、仕事の話なら素直にSIerに相談汁

ここは確かに無料相談所でもあるんだろうが、
悪いが藻前のレベルだとAccessでやりくりして
そしてSQL Serverって流れていった方がトータルで
安上がりだぞ。
214NAME IS NULL:2006/12/22(金) 22:56:43 ID:???
>>210
ODBCよりDBIのほうがよかった記憶があるけど、最近使ってないから正確なことは言えない。

サイズについては
http://dev.mysql.com/doc/refman/4.1/ja/storage-requirements.html
で計算しなされ。

インデックス張ってるならその分増えるし、データベースエンジンによっても変わる。
(InnoDBだと実際には使ってなくても最初に容量確保した記憶がある)
215Mysql Man:2006/12/22(金) 23:37:46 ID:Dt4HFFfL
mysqlの auto_increment で自動採番しているけど、PHPのスクリプトで
insert している時、たまに番号が極端に(たとえば1から1000まで来て、
1000000くらいに飛ぶときがある。

この時、データベースでは何が起きているのだろう?
216210:2006/12/23(土) 00:52:09 ID:???
>>213
確かにACCESSが安上がりですね。それはそう思います。
今まではACCESSでやっていたのです。
ただ、PerlやPHPと親和性が高いので、MySQLへのリプレースを考えました。
勉強したいという思いも強かったのも事実です。
アドバイスありがとうございました。

>>214
どう考えても4.5GBは大きすぎると確信しました。
次の対処を考えてみることにします。
アドバイスありがとうございました。
217NAME IS NULL:2006/12/23(土) 02:13:38 ID:???
ヒント:ODBC, MDB
アクセスと共通だから、引き継ぎやバックアップが便利。
218NAME IS NULL:2006/12/23(土) 07:25:51 ID:???
別にPHPやMySQLを否定する訳じゃないんだが、職場で
AccessとかExcelが普及している状況で、藻前個人の
考えで「Perl使いたいからMySQL」って選択はよーわからんぞ。

社内のイントラネットで悪い意味じゃなくて安鯖を立ち上げて
そこでLinux+Apache+MySQL+PHPって感じで使うならよくあるケースだけど、
今まで普通にAccess使っていたなら、フロントエンドツール(?)として
そのままAccess使え。

後はODBCのリンクテーブルとかパススルークエリ、
VBAでADO接続でデータのインポートとかする方が、社内の人にも解りやすいだろう。

ノートに入れて勉強は結構だか、「速度が出ない」はお門違い。
219NAME IS NULL:2006/12/23(土) 11:12:09 ID:???
アクセスからなら、SQL鯖に移って行くのが楽。
220NAME IS NULL:2006/12/23(土) 18:18:50 ID:???
つうかP4 3Gの1Gメモリのマシンで、20フィールド・10万レコードごときの
インポートで2時間て、逆にそれだけかかる方が難しいんじゃないか?
まず他のこと疑いなはれ。

そもそも挿入SQLを外した状態で何分かかるプログラムなんだ?
それともcsvをまんまMySQLにインポートさせてるのか?
221NAME IS NULL:2006/12/23(土) 20:12:49 ID:???
インサートすると同時に
そのインサートしたデータのauto_increment数字を確実にクエリとしてほしいのですがどのような方法があるでしょうか?
インサート後、すぐにセレクトする方法しか思いつきません。
ご教示お願いします
222NAME IS NULL:2006/12/23(土) 20:16:17 ID:???
auto_incrementせずに自前でセットすればセレクトする必要ないじゃん。
223NAME IS NULL:2006/12/23(土) 20:53:35 ID:???
hoge_data,hoge_count,hoge_answer,内のhoge_seqが1のデータをすべて消したいのですがどのようにやればいいでしょうか?
それぞれのテーブルにhoge_seq=1があるとは限りません。(数量は不定)
以下のようにやってみたのですが、削除してくれませんでした。。

DELETE `hoge_data`, `hoge_answer`, `hoge_count` FROM `hoge_data`, `hoge_answer`, `hoge_count` WHERE `hoge_data`.`hoge_seq`=".$qseq." and `hoge_data`.`hoge_seq` = `hoge_answer`.`hoge_seq` = `hoge_count`.`hoge_seq`
224NAME IS NULL:2006/12/23(土) 21:09:14 ID:???
>>221
マニュアル嫁
225NAME IS NULL:2006/12/23(土) 21:36:10 ID:???
>>224
教えるきないならここ、みるなよ
いちいちうざい
226NAME IS NULL:2006/12/23(土) 21:49:10 ID:???
>>225
で、マニュアルは読んだのか?
227NAME IS NULL:2006/12/23(土) 21:54:28 ID:???
>>221
ググレカス
228NAME IS NULL:2006/12/23(土) 22:09:31 ID:???
>>225
スレ毎に1回は出るだろ>auto_incrementの値を取得したい。
MySQL auto_increment でぐぐったら一番上に出た('A`)
229NAME IS NULL:2006/12/23(土) 22:31:09 ID:???
>>226
>>205

>>228さん
インサートすると同時に(インサートしたデータの)auto_incrementの値をえたいですよ
それで調べましたが出てきません。

230NAME IS NULL:2006/12/23(土) 22:34:57 ID:???
あーあーあーあーあーあー聞こえないーーーーーーー
231NAME IS NULL:2006/12/24(日) 03:54:06 ID:???
MySQLやってるやつって性格悪そうですね…
232NAME IS NULL:2006/12/24(日) 04:08:39 ID:???
馬鹿が多いなあ。
ちゃんと入ったかどうかセレクト汁!
233NAME IS NULL:2006/12/24(日) 07:12:42 ID:???
>>229
質問を深化させないと堂々回りだよ
ぐぐって新しくわかったことだけでも書くべきだね

答えは「同時にはできない」
インサートした直後に以下のSQLで問い合わせる

SELECT LAST_INSERT_ID();

「接続」単位で最後に挿入したIDが保持されているので
自分の接続が挿入したレコードのIDが返ることになっている
万が一タイムアウトなどで接続が切れたらこの値はとれない
とれないと困るならトランザクションかませた方が安全

これはFAQなんでテンプレートに入れてもいいんじゃないか
234NAME IS NULL:2006/12/24(日) 08:56:28 ID:???
冬房の季節か
こんな所で答え探さずに、課題出した相手から教えてもらえよ
235NAME IS NULL:2006/12/24(日) 09:34:17 ID:???
ああ冬休みの宿題なのか。
db板にも宿題スレが必要だな。
236NAME IS NULL:2006/12/24(日) 09:46:54 ID:???
こんなMySQLに依存した課題出すわけないし
単にMySQL初心者が悩んでたんだろうけどな
237NAME IS NULL:2006/12/24(日) 10:21:17 ID:???
ヒント:卒論
238NAME IS NULL:2006/12/24(日) 11:14:30 ID:???
ここってさ中身の無い偉そうな奴が常駐してるよな
そろそろ消えろよ

そう、お前の事
239NAME IS NULL:2006/12/24(日) 11:45:02 ID:E0ge9puy
>>223
削除の前に対象レコードがちゃんと出る クエリ(select)考える。
リレーション関係の説明が無いので不明だが、全て削除なら or じゃない?
あと、ms系の癖から来ているのかも知れないが、無駄にクォートをすると
見づらくないかい。
240NAME IS NULL:2006/12/24(日) 12:19:20 ID:???
>>223
つーかこんな=を連結する書き方できたんだっけ?

DELETE hoge_data, hoge_answer, hoge_count
FROM hoge_data, hoge_answer, hoge_count
WHERE hoge_data.hoge_seq = 1
AND hoge_data.hoge_seq = hoge_answer.hoge_seq
AND hoge_data.hoge_seq = hoge_count.hoge_seq;
241NAME IS NULL:2006/12/24(日) 16:44:44 ID:???
>>235に同意 こんなんでどうかな?

「データベースの宿題はここで聞け!!!」

テンプレはム板のC/C++から借用したので、ちょっと変かも

あなたが解けないデータベースの宿題を片付けもらうスレッドです。
気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細等のログを書きましょう。ログはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文:
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] バージョン: (1.0.1等 詳しく書く)
 [3.3] 接続言語: (使用していれば)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、特定のDBの指定はあるか等々)
242NAME IS NULL:2006/12/24(日) 16:48:51 ID:???
×任意の文字列
○推測の難しい秘密の文字列
243223:2006/12/25(月) 13:25:10 ID:???
>>240
いちおう、通ります。
ただ消したデータは0となってますので意図した動きはしてくれません。。
引き続きお願いいたしますm(_ _)m
ちなみに宿題とかではないです。。。
244NAME IS NULL:2006/12/25(月) 14:04:19 ID:???
>>243
たから、まず selectで一致するクエリを考えれば。
245NAME IS NULL:2006/12/25(月) 14:39:53 ID:???
もう相手すんなよ
246NAME IS NULL:2006/12/25(月) 16:21:11 ID:???
規約に追加しとけ

答える気ない人は見ない
247NAME IS NULL:2006/12/25(月) 17:18:04 ID:???
何でも答えればいいってもんじゃねぇよ。
ここは初心者質問スレでもMySQLのサポート窓口でも学校でもねぇんだ。
248NAME IS NULL:2006/12/25(月) 17:51:44 ID:???
>>246
規約ってなんだ?
249NAME IS NULL:2006/12/25(月) 18:27:41 ID:???
>>243
削除条件を簡潔に日本語で説明してみな

hoge_data.hoge_seqが1で、
かつ hoge_answer.hoge_seqが1で、
かつ hoge_count.hoge_seqが1のもの
を削除じゃなかったのか?
250NAME IS NULL:2006/12/25(月) 19:46:33 ID:???
>>243
多分、どれかのテーブルに hoge_seq が 1 のレコードがないので削除できない
のじゃないかい。素直に、テーブル分削除したら。
251NAME IS NULL:2006/12/26(火) 00:02:51 ID:???
>>246

そもそも2chはそれぞれの板の趣旨に沿って、
既にある程度は知識・経験を持っている者同士が話を
深めていくところなのであって、初心者の質問は板においてはオマケに過ぎない。
手間も費用もかけずにタダで知識をゲットしようなんて甘い、
初心者の質問は無視されても仕方が無い。それが2chの基本。

でも、 「2chの人達ならばこの問題を解決してくれるかもしれない」
と思って2chを訪れる善意の人たちのために、
多くの板ではあくまでも 《 厚意で 》 質問専用スレを用意している。
そして多くのスレではテンプレとして過去ログやFAQが>>1-10あたりに明記されている。
なのに、 くだらない質問をするヴァカが後を絶たない。

もし、くだらない質問にいちいち解答していたとしたら、
「自分で努力して調べるよりもここで聞いた方がすばやく解答をもらえるじゃないか」
と感じて人に頼るだけのヴァカとお人好しの回答者ばかりになってしまう。
そもそもこういう自己中なヴァカは過去ログやFAQ、同板内の関連スレなんか絶対チェックしない。
そのうちにスレ内はその手のくだらない質問で埋め尽くされてしまうだろう。

そうなればパート●●とか続いている名シリーズ・スレすらもくだらない質問の繰り返しで
埋め尽くされてしまうだろう。
と言う事ぐらい、5秒も考えれば分かりそうなもんだ。
以上のような思いを簡潔にまとめると【 >246は今すぐに首吊って氏ね 】ということになる。
252NAME IS NULL:2006/12/26(火) 00:09:28 ID:???
>>251
ドラゴンボールでフリーザの強さにはたまげた まで読んだ
253NAME IS NULL:2006/12/26(火) 00:17:28 ID:???
>>252
おまえもヴァカだな。ドラゴンボールで一番強いのは孫悟空だよ。
254NAME IS NULL:2006/12/26(火) 00:20:57 ID:???
ここに置いていきますね。

【帰ってきた】SQL質疑応答スレ 3問目
http://pc8.2ch.net/test/read.cgi/db/1160458216/
255NAME IS NULL:2006/12/26(火) 12:32:49 ID:???
>>251
自治厨は本当にうざいね。
256NAME IS NULL:2006/12/26(火) 15:33:38 ID:???
auto_incrementの数値が1,2,3...50とあった時、
例えば23,24,25を削除(DELETE)すると23,24,25の番号があきますよね?
その時、番号を詰めたいのですが可能でしょうか?
分かりやすくするとこんな感じです。
1,2,3,...22,26,27,...50

1,2,3...22,23,24,25...47
としたいのです。
可能でしたらヒントか回答お願い致します。
>>253
ブロリーに1票(^∀^)
257256:2006/12/26(火) 15:35:30 ID:NBqYscux
ID出し忘れましたスミマセン。。
それと追加でお願いします。
auto_incrementに限らず数値を詰める方法もしくは代替案で再度お願いしますm(_ _)m
258NAME IS NULL:2006/12/26(火) 17:37:07 ID:???
>>257
innodb,MyISAM にもよる。"uto_increment 初期化" ググレカス。
259256:2006/12/26(火) 17:56:24 ID:NBqYscux
>>258
質問の回答になってないんですが…
260256:2006/12/26(火) 18:37:39 ID:NBqYscux
>>258
削除毎に初期化してたらすごいトラフィックになりそうですね。。。
また、>>257でも書いたとおり、auto_increment以外では出来ないので…

その要素で並び順を決めているのですが間の要素を消した場合、順序変更が難しくなるんです。
例えば
123..の並び順
2が消された時134...
ってなりますが
1と3の並びを替えたい時むずっくって
ググって見てもさっぱりです…何か他の方法しかないのかなぁ〜
261NAME IS NULL:2006/12/26(火) 18:40:15 ID:???
いいかげん、auto_increment厨がウザいんだが。

こういうアフォが設計したテーブルなんかは、
他の人がみたらさぞかし笑いのネタになるんだろうなぁ。
262NAME IS NULL:2006/12/26(火) 18:43:09 ID:???
>>260
つうか欠番は欠番であって、詰めるべきではないです。
欠番も情報記録の1つ。 何の処理をしたいのですか?

おそらく、「番号を詰める」という処理の方法自体が
間違っているのではないかと思いますが。
263256:2006/12/26(火) 19:11:23 ID:NBqYscux
>>261,262さん
何度か書いてますが、auto_incrementは一例であってさして関係ないです…
auto_incrementの質問が多いように見受けられたので絡めただけです。

例えば1ユーザ、ブログを最大10個作れるとして、
そのユーザが3番目のブログを消した場合3番が空きますよね?
これだと消した後、ブログの表示順序を替えるとき弊害があるので(このブログの並び順を「上へ、下へ」形式の並び替えなので)
これを詰めたらいいのではないかと考えたのです。
264NAME IS NULL:2006/12/26(火) 19:16:49 ID:???
>これだと消した後、ブログの表示順序を替えるとき弊害

ハァ?
265NAME IS NULL:2006/12/26(火) 19:18:11 ID:???
たしかにソレで弊害がでるような設計はアフォの極みだな。(w
266256:2006/12/26(火) 19:50:04 ID:NBqYscux
>>265さん
アフォなのは自覚しております…(;ω;)

普通に
「並び替えもとの番号」と「上の項目の番号」
「並び替えもとの番号」と「下の項目の番号」
を入れ替えれば問題ないのですが消したり追加したりしているユーザの場合、
数値が10以上になってしまうのがなんかいやで…

スクール通いたい(;ω;)
267NAME IS NULL:2006/12/26(火) 19:55:17 ID:???
表示順フィールドでもつくれやw
268NAME IS NULL:2006/12/26(火) 20:26:27 ID:???
っていうか、表示順用の「テーブル」だね
269NAME IS NULL:2006/12/26(火) 20:53:49 ID:???
256がナニをしたいのかよー解らんが、
ブログがどーこーなら、そのブログのソース嫁。

>>262も指摘しているが方法論からしてRDBの使い方を
間違えている。
270262:2006/12/26(火) 21:50:49 ID:???
>>266
結局 管理番号云々の話しですよね。

>>263の例からしても、そういうのは別途 管理・発行関数を持つべき。
(10個の数字を空き番として持ち、常に持ってる一番小さい番号を
 発行すればいいだけですよね)

auto_incrementは何の関係も無い話で、
やはり当初の処理・設計が間違ってるということ。

「(auto_increment)のdelete欠番を埋めたい」は、よく初心者が
思いつく事の1つで、しかもそれはまず間違いなく誤った発想です。
(知る限りそんな処理が必要なケースはないし、するべきでない)
271256:2006/12/26(火) 22:15:35 ID:???
皆さん、ありがとうございます。
自分の中でMySQLをなめてかかってたかもしれません。
DBの参考書を買いあさりたいと思います。
本当にありがとう(;ω;)
272NAME IS NULL:2006/12/27(水) 02:34:31 ID:???
まあ不可だな。諦めて来年ガンガレ。
273NAME IS NULL:2006/12/27(水) 02:46:57 ID:???
そもそも、発想がexcelではないかと。
274NAME IS NULL:2006/12/27(水) 03:15:57 ID:???
lengthの値がおかしいとか気にしなければ、サーバ、クライアント両方latin1
でOKですか?
275NAME IS NULL:2006/12/27(水) 04:55:15 ID:???
素人にはデータベースの概念は難しいからねえ。
順序は関係無いけど、並び替えが出来るって概念を理解しないと。
276NAME IS NULL:2006/12/27(水) 10:38:07 ID:???
アマゾンと似たようなもんだな

あそこ、入荷した製品は、ABC順でもアイウエオ順でもなく空いてる棚に片っ端から入れていって、
場所を記録・検索することで作業効率を向上させてるんだよな

しかも、複数の商品を検索すると、一筆書きのように最適化された順番を指示してくれるという・・・・
277NAME IS NULL:2006/12/27(水) 11:35:18 ID:???
>>274
文字コードによっては、like, substring とか文字操作系で色々おかしくなる
けどそれでもいいならいいんじゃないの。
278NAME IS NULL:2006/12/27(水) 12:59:06 ID:???
確かに詰める必要性が理解できんよ
そのテーブルは綺麗に見えるかもしれんが
他のテーブルとの絡みが完全崩壊するんじゃ?

ユーザ情報
---------
id | name
---------
1 | abc
2 | dfg
3 | hij

コメント
-----------------
id | writer | comment
-----------------
1 |  1  |  foo
2 |  2  |  bar

コメント.writerはユーザ情報.idを参照してしている状態で
ユーザ.id = 1が削除された場合に詰めてると
abcが書き込んだはずのfooがdfgが書き込んだことになってしまうよ

-----------------
id | writer | comment
-----------------
1 | dfg  |  foo
2 | hij   |  bar

レコードを削除じゃなくて有効・無効のフィールドを追加して対応するとか
削除しても詰めなければ結合した際にwriterはNULLにできるので
NULLのwriterはアノニに置き換えるとか色々できるんじゃね
279NAME IS NULL:2006/12/27(水) 14:08:40 ID:bfFVcbBQ
MySQLとかのDBってどれくらいのレコード数に耐えれるのかな?
280NAME IS NULL:2006/12/28(木) 10:34:34 ID:LFFepbWL
SQL92とかSQL99の仕様書ってどこで見れるの?
281NAME IS NULL:2006/12/29(金) 01:57:00 ID:???
100万レコードぐらいは余裕だよね?

282NAME IS NULL:2006/12/30(土) 19:43:25 ID:yk2q0fFF
文字コードで質問です。

EUCコードの「市」という文字をMySQLに入れて
そのままSELECTをすると文字化けしてしまいます。
他の文字は化けずに取り出せるのですがなぜでしょうか?

my.cfg は、
[mysqld]
default-character-set = ujis
[mysql]
default-character-set = ujis
としてあります。
バージョンは 5.0.27 で、
EUCコードで書かれたPerl-CGIからSELECTしてそのままprintしています。
(HTMLファイルの文字コードやMETAタグも全てeuc-jpです。)

SELECT hex(対象カラム) from テーブル;
とすると、
「市」と入れたカラムは 3F8FAAD4 が返ってきています。

よろしくお願いします。
283NAME IS NULL:2006/12/31(日) 00:28:44 ID:VBXG7ZfN
外部接続可能なmysqlのdbを構築したいのですができません。
GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'xxx';
というコマンドを流しても
select is_grantable from information_schema.user_privileges;
で確認するとNO(権限付与されていない)となってしまいます。
どうすればYESにできるのでしょうか

OSはLinux
Mysqlは5.0.27

windowsの設定ウィザードではうまく権限付与できる(linにはウィザードがない)のですが。。。
my.ini(my.cnf)の内容はwinで設定した時と同じです
284NAME IS NULL:2006/12/31(日) 00:31:00 ID:VBXG7ZfN
ところでmy.iniにはhugeとか色々ありますが何が違うのでしょうか?
どれに設定をすればいいのか分からず大変こまっております。
winはmy.iniというのが生成されますがlinの場合はそれが無いので困ってしまいます。

285NAME IS NULL:2006/12/31(日) 14:49:30 ID:???
自分で用意すればおk。
リナ鯖本読んで、リナクスの流儀を覚えた方が良いよ。

GUI欲しければSQL鯖が良いよ。楽に設定できる。

内部コードはutf8だから、eucじゃなくてutf8にするのが一番問題が少ない。
286NAME IS NULL:2006/12/31(日) 23:38:52 ID:???
エディタでmy-xxx.cnfを開くと真っ先に書いてあるけどなぁ
そこにたどり着かない奴とか、This is for a xxx なんてのも読めない奴が
この手のDBを使う事が間違い。
287NAME IS NULL:2007/01/01(月) 01:26:56 ID:???
SQL鯖買えない貧乏人のDBだからねえ。
所詮無料ソフト。
288 【小吉】 【1762円】 :2007/01/01(月) 10:27:24 ID:???
あけおめ
289NAME IS NULL:2007/01/02(火) 08:31:12 ID:e3tCtLft
mysqlでアルファベットの文字列を五十音順でソートしたいのだけどうまい方法ないかな?

abe
inoue
ueda
katou
satou

のように。
oracle だとこういうの出来た気がする。
290NAME IS NULL:2007/01/02(火) 08:58:54 ID:???
blogシステム作ってるけど、データが大きすぎて大変です。
DBのスキーマ変更するいい方法ありませんか?

いまは、mysqldumpをしてから、やってるんですけど
(mysqldump -u *** -p -c hoge > hoge.db)

291NAME IS NULL:2007/01/02(火) 09:17:34 ID:???
>>289
うまくない方法で
a,1
b,2
c,3
みたいに自前でindex作ってjoinするとか。
292NAME IS NULL:2007/01/02(火) 11:19:55 ID:???
50音のインデックスを別に作って、orderだな。
どうせよみがなとか入力させるだろ?
293NAME IS NULL:2007/01/02(火) 23:01:08 ID:uvP7Aa7S
http://www.mysql.gr.jp/frame/modules/bwiki/?Contrib

にあるVer5.0用のウインドウズ用バイナリパッチを当ててから、
Select文のWhere句でvarchar型の項目を使用すると
「supplied argument is not a valid MySQL」というエラーが発生します。
対処法を伝授して下さい。
294293:2007/01/02(火) 23:10:51 ID:???
ちょっと抜けてました。
それでphpmyadminからは正常に検索できるのですが、
そのSQL文をコピーしたものをphp経由で実行した場合エラーになります。

環境は
php 5.2.0
MySQL5.0.27
295NAME IS NULL:2007/01/02(火) 23:29:58 ID:sLkP3MaD
こんなことになってしまうのですが、なぜでしょうか。

[***@*** dirA]$ mysql -u root mysql -p

mysql> show tables;
ERROR 1018 (HY000): Can't read dir of './mysql/' (errno: 13)

あとこの'.'が意味するのは、dirAということですか?
296NAME IS NULL:2007/01/06(土) 01:50:46 ID:???
>>295
ヒント (errno: 13)はPermission denied

> $ /usr/local/bin/perror 13
> OS error code 13: Permission denied
297NAME IS NULL:2007/01/07(日) 09:22:27 ID:???
WinXPにてJAVA/MySQL/Tomcat/Eclipseでウェブアプリを完成させ、Solaris8のサーバーにFFFTPであげて動かそうとしてるのですが、DBだけうまく動きません・・・
レコードの追加などをしようとすると
ERROR 1036: Table 'テーブル名' is read only
というエラーが起こります。
どなたか対処法わかる方いますでしょうか?
298NAME IS NULL:2007/01/07(日) 10:45:57 ID:???
そもそもwinでの開発が悪い。
299NAME IS NULL:2007/01/07(日) 20:35:44 ID:MfCcBkqL
MySQL3系列の最終バージョンを使っているのですが、
limitで数を制限されて返されたカラムの、
limitを制限しなかった場合の個数を取得したいのですがどのようにすれば良いでしょうか?
4系列で使えるfound_rows( )が使えないので;;
どなたかご助言お願いいたします _ _
300NAME IS NULL:2007/01/07(日) 21:44:23 ID:???
>>299
SELECT COUNT(*)すれば?
301299:2007/01/08(月) 14:06:45 ID:???
>>300
ありがとうございます。
selectで表示する値と共にcount(*)を指定すると、
group by節を指定しろとエラーが出てしまいます;;
302NAME IS NULL:2007/01/08(月) 16:34:58 ID:???
>>301
絶対に満たす条件でgroup byすればいいじゃん
303299:2007/01/08(月) 16:58:53 ID:???
>>302
ありがとうございます。
そうすると、数は数えられるのですが、
全てが一つのグループになってしまいselectで指定した他の値が
一つしか表示されなくなってしまいます;;
pri | count( * )
-------------
3  | 478
304NAME IS NULL:2007/01/08(月) 17:18:13 ID:???
>>303
3系なら、2回に分けて処理するしか無いじゃん。
仮テーブルこしらえてJOINすればよくね?
305299:2007/01/08(月) 17:32:44 ID:???
>>304
ありがとうございます _ _二回に分けて処理することにします。。
解決はしたのですが、>>304さんのJOINするというのはどういう風にでしょうか?
きっと私が考えている方法より負荷が少ないと存じますので、
もしよろしければ教えていただけないでしょうか。
306NAME IS NULL:2007/01/09(火) 00:39:56 ID:???
すまん、ちょっと初歩的なこと聞く

・Aというテーブルのfoo項目でgroup化して集計(SUM)した結果、
・Bというテーブルのfoo項目でgroup化して集計(count)した結果、
・Cというテーブルのfoo項目に対応する名称

を一度に表示するのにjoinで繋ぎまくってgroup化したんだが、
それぞれ20万レコード位づつあるせいか、1時間経っても結果が返って来ないのな。

で、待ちきれなくなって、Aの集計結果をテーブル化して、Bの集計結果もテーブル化して、
集計結果二つとCをjoinすると、トータルで3秒かからないんだが、
やっぱりこういう場合は一時テーブルで処理するべきなのか?

group化前=20万レコード、group化後=1000レコード程度なので、group化後にjoinすれば高速なんだが、
SQLの処理順がjoin→groupの順序になっているようで、一度全ての組み合わせを作って、
抽出後にgroup処理を行うようで・・・・・
307NAME IS NULL:2007/01/09(火) 20:54:53 ID:???
>>306
テストデータでexplainしてみろ。そして、結果を報告しろ。
聞いてみるだけではなく、たまには、みんなの役にたてw
308NAME IS NULL:2007/01/10(水) 14:23:33 ID:BcNJkyUw
ディレクトリに数十キロバイトのファイルが約一万入ってしまってパフォーマンスが低下しています;;
これを全て一つのテーブルに移して使おうと思うのですが、やめた方がいいでしょうか?
309NAME IS NULL:2007/01/10(水) 18:42:35 ID:???
テスト的にやってみてパフォーマンスが落ちるかどうか見てみろ、
としか言えんよ。
310NAME IS NULL:2007/01/10(水) 23:08:04 ID:???
>>308
何のファイルでどう使ってるのか分からないので、>>309同様何とも言えない。
画像とかとも考えられるし。
どっちにしても、OSのファイル管理能力は優秀なので(linux&win)、
妙なことはしない方が良い。
どうせ、lsとかFTPで見るとき時間掛かるとかその程度の理由でしょ?
311308:2007/01/11(木) 00:14:42 ID:???
再確認してみたら二万ファイルでした。。
>>309-310
ありがとうございます。ファイルは画像が一万と、ログファイルが一万ですね。。
妙なことはしないでおきます〜。
312NAME IS NULL:2007/01/11(木) 14:10:59 ID:???
いや、テストとしてはいろいろやってみた方がいいよ。ファイル名や
ハッシュで分けていくつかのディレクトリに分散させるとか。
313NAME IS NULL:2007/01/11(木) 21:05:35 ID:???
数万ファイル程度で特定ファイルの読み込みで
パフォーマンスが落ちるとは思えない。
314NAME IS NULL:2007/01/12(金) 00:52:56 ID:wP3wP6KV
>>303
遅レスだが
グルーピングした場合は、sum()で合計するといいよ
315NAME IS NULL:2007/01/12(金) 11:57:53 ID:SlQqD9oe
mysql5を使っています。

任意のホスト(IPアドレス)からのサーバへの接続を完全に拒否したいのですが、
どのへんを設定すれば良いのでしょうか?
316NAME IS NULL:2007/01/12(金) 16:16:41 ID:???
MySQL上のユーザの話ならmysqlテーブルにてアクセス権の調整で済む。
そうじゃなければ、そのマシンのTCPポート3306向けのパケットを落とすよう
ファイアウォールを設定する。
317NAME IS NULL:2007/01/12(金) 21:17:32 ID:???
hosts.deny を編集するとかじゃダメなん?
318NAME IS NULL:2007/01/12(金) 21:58:10 ID:???
mysqlをtcp_wrapper経由に書き換えてコンパイルすればhosts.allow/denyが使えるようになる
319NAME IS NULL:2007/01/13(土) 08:13:34 ID:???
優秀かどうかはちゃんとベンチマーク取って判断して欲しいな。

ファイル管理能力を絶賛するなら、そのソースをミドルウェアに組み込めば、DBでも早くなると思うよ。
ファイルシステムの場合はFATみたいに割当テーブルを持って管理してたりするね。

その辺面倒なら、オラクルifsでもどうぞ。そういうふうに、DBをファイルシステムとして使う製品も既にある。
320NAME IS NULL:2007/01/13(土) 17:31:56 ID:f4FgI9Y0
誰か>>282>>293お願いします
321NAME IS NULL:2007/01/14(日) 10:05:06 ID:???
>>293 windowsを使うのが悪い。
322NAME IS NULL:2007/01/14(日) 13:13:46 ID:???
MySQL のレプリケーション機能は、
データベースごとにレプリケーションすることができるのでしょうか?
それともマスタのすべてのデータベースがスレーブのすべての
データベースに反映されるのでしょうか?

つまり、host_a の db_a を host_b にレプリケート、
host_b の db_b を host_a にレプリケート、
ということを同時にクロスで設定することができるのでしょうか?
323NAME IS NULL:2007/01/14(日) 13:30:06 ID:???
出来るけど、苦労するよ。 クロスだけに。
なんちゃってゲハハ
324NAME IS NULL:2007/01/14(日) 15:49:23 ID:???
クロスてやりたいようなギャグだな。
325NAME IS NULL:2007/01/14(日) 22:01:33 ID:???
>>324
テラクロスw
326NAME IS NULL:2007/01/14(日) 22:11:37 ID:???
おまいらいい加減にくろっ、スレ違い
327NAME IS NULL:2007/01/15(月) 02:41:59 ID:???
そろそろ、本題に戻りますが、5.2がAlphaになりましたね。
MySQL 5.2 Database Server - Community Edition (Falcon Preview)
328NAME IS NULL:2007/01/15(月) 06:54:56 ID:???
MySQLは各テーブルに「id」という名前のオートインクリメントなキー列が必要
と、どっかで目にした気がするのですが本当ですか?
329NAME IS NULL:2007/01/15(月) 07:05:43 ID:???
>>328
そんなわけ無いっす。
もちろんオートインクリメントなフィールドを作って
キーとして指定することもできるけど。
MySQL ではそもそも主キーを指定しなくても構いません。
それはそれでどうかと思うけど。
まぁそのときは全てのフィールドを含む復号キーとみなすんでしょう。
とはいえそれでインデックスが作成されるわけでもありませんが。

Microsoft Access だとキーを指定しないばあい
「ID」という名前のオートインクリメントなフィールドが
自動的に作成されて、それがキーとして指定されますね。
330NAME IS NULL:2007/01/15(月) 08:32:51 ID:???
>>329
timestampも無いと、体中から失血し やがて死ぬ と雷電が言ってた
331NAME IS NULL:2007/01/15(月) 17:49:11 ID:???
>>327
5.2の売りは?
いっそう早くなるのかな?
332NAME IS NULL:2007/01/15(月) 19:59:54 ID:???
>>328
マジレスすると、それはMySQLで必要というよりも、
例えば、ruby on railsで使用しているActive Recordの"規約"で、
"「id」という名前のオートインクリメントなキー列が必要"
というのがある。

まだ、興味があったらWebProg板で探してくれ。
333328:2007/01/16(火) 16:09:14 ID:???
皆様、ありがとうございました。
闇雲に情報を漁りまくってた頃に目にして、
今ではソースすら掘り出せないくらいいい加減な憶え方してたので大変助かりました。

AccessにもRubyにも足を踏み入れてなく、例え検索に引っ掛かってきても
それ等は読まずにスルーしてる筈なのですが・・
自分、何を見たんだか(というか読み違えたのか・・かも)

重ね重ね、本当にありがとうございましたm(_ _)m
334NAME IS NULL:2007/01/17(水) 00:55:10 ID:???
phpMyAdminの質問です。
日本語文字が文字化けします。なぜでしょうか?
phpMyAdminの設定は以下のようになってます。

Language:Japanese(ja-utf-8)
MySQLの文字セット: UTF-8 Unicode (utf8)
MySQL 接続照会順序:utf8_unicode_ci

よろしくお願いします。
335NAME IS NULL:2007/01/17(水) 01:31:28 ID:xvC96ZCo
>>334
phpからはどうなる?mysql.exeではどうなる?my.iniの設定も教えてね
336NAME IS NULL:2007/01/17(水) 05:23:30 ID:???
インターフェイスの日本語文字列が化けるのか、
テーブル内のデータの日本語文字列が化けるのか、
どっちかな?
どっちも?
337NAME IS NULL:2007/01/18(木) 13:57:34 ID:E5eo/QhT
MySQL の特権情報のうち、一部のユーザに関する情報だけ
書き出して別の MySQL に持っていくことは出来ませんか?

いまひとつの MySQL で保持しているデータベース群を
いくつかのサーバに分割して保持しようとしているのですが、
特権情報をどうやって移行させればいいのかがわかりません。
338NAME IS NULL:2007/01/18(木) 18:51:40 ID:AwfnveVD
>>337
mysql db を mysqldump してテキストエディタで編集したら。
339NAME IS NULL:2007/01/18(木) 20:38:19 ID:E5eo/QhT
>>338
ダンプして眺めてみたのですが、
テーブルがたくさんありすぎて、
なにがなにやら・・・・
340NAME IS NULL:2007/01/18(木) 22:43:02 ID:E5eo/QhT
特権情報(グローバル特権とデータベース特権)を表示させる
コマンドってありますか?
341NAME IS NULL:2007/01/18(木) 23:04:59 ID:???
あります。
342NAME IS NULL:2007/01/19(金) 16:20:56 ID:???
TRUNCATEでデータを空にした後、再度データを入れると
primary keyの値が空にする前の続きになってしまいます。
(10件のデータを空にした後再度データを入れるとprimary keyが11からになる。)
これはmysql5の仕様なのでしょうか?
(4のときは完全に0からになっていましたが…)
343NAME IS NULL:2007/01/19(金) 16:58:51 ID:???
>>342
AUTO INCREMENTか?
だったらTRUNCATE後にリセットすればおk。

ALTER TABLE `hogehoge` AUTO_INCREMENT =1
344NAME IS NULL:2007/01/19(金) 18:03:42 ID:???
>>343
なるほどっありがとうございます。
そんなやり方あったとは知りませんでした。
345NAME IS NULL:2007/01/19(金) 22:12:00 ID:???
なんでphpで切り分けしないのだろう。。。
もう何度も出てるFAQだから検索も汁!

まともなmysqlの本を一冊でも買えば当たり前に載ってるけどねえ。
まともな学習能力が有ればオンラインマニュアルにも載ってるのが探せるはずだし。


何か変な事してる悪寒。
普通は連番用のカラムを持つよ。
リセットする事は考えなくていい。
346NAME IS NULL:2007/01/19(金) 22:17:37 ID:???
MyIsamとInnoDBでAUTO_INCREMENTの仕組みが違っていた気がするが、最近のはしらない。
MyIsamは最大値+1で、InnoDBはデータ関係なくどんどんインクリメントして行く。
マルチユーザーで同時書き込みのパフォーマンスを考えたらInnoDBのやり方がほんとなんだろうな。
347NAME IS NULL:2007/01/19(金) 23:37:14 ID:CC5twcvV
>>1
> [MySQL 日本語リファレンスマニュアル] http://dev.mysql.com/doc/mysql/ja/

Ver5用ってないんですか?
3481:2007/01/20(土) 02:33:50 ID:???
>>347
ない。

>このマニュアルへの追加や修正に関する提案は、
>マニュアルチーム(<[email protected]>)にお送りください。
349347:2007/01/20(土) 16:31:15 ID:???
>>348
ありがとう
350NAME IS NULL:2007/01/20(土) 21:11:59 ID:BZAs91pE
MD5 を格納したいのですが、どんな方を使えばいいでしょうか?
文字列で格納してしまうのが良いでしょうか?
それとも整数値として格納するのがいいでしょうか?
bigint で格納?
351NAME IS NULL:2007/01/20(土) 21:47:25 ID:???
>>350
bigintでも64bitしかないから、バイナリで固定長(8バイト)文字列として入れるのが一番早い。
でも、速度が要らないなら、固定長16進数での文字列(16バイト)だと扱いが便利なことも。
md5っぽいもので、64bit(もしくは63bit)のハッシュが有ればいいのにね。
352NAME IS NULL:2007/01/21(日) 17:41:57 ID:/+Oi6I2c
すいません初心者ですが
レンタルサーバーを借りてプログラムを公開しようとしてますが
データベースにアクセスできません。
自分のパソコンでは正常に動いていました。

<?php
require_once 'DB.php';

$dsn = "mysql://hibinotatsuya:(パスワード)@localhost/hibinotatsuya "

$con = DB::connect($dsn);

if(DB::isError($con)){
exit('DBの接続に失敗しました');
}else{
echo('成功');
}
?>

Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory in /home/hibinotatsuya/public/www/test.php on line 2

Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:') in /home/hibinotatsuya/public/www/test.php on line 2

こういうエラーがでるんですがどこを直せばいいでしょうか?
353NAME IS NULL:2007/01/21(日) 17:43:44 ID:/+Oi6I2c
すいません初心者ですが
レンタルサーバーを借りてプログラムを公開しようとしてますが
データベースにアクセスできません。
自分のパソコンでは正常に動いていました。

<?php
require_once 'DB.php';

$dsn = "mysql://hibinotatsuya:(パスワード)@localhost/hibinotatsuya ";

$con = DB::connect($dsn);

if(DB::isError($con)){
exit('DBの接続に失敗しました');
}else{
echo('成功');
}
?>

Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory in /home/hibinotatsuya/public/www/test.php on line 2

Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:') in /home/hibinotatsuya/public/www/test.php on line 2

こういうエラーがでるんですがどこを直せばいいでしょうか?
354NAME IS NULL:2007/01/21(日) 18:00:48 ID:???
>>353
MySQL関係ない。
PHPかPEARのスレでも行って来い。
355NAME IS NULL:2007/01/21(日) 18:03:29 ID:???
>>352,353

こちらに行きなされ。

くだすれPHP(超初心者用)2
http://pc10.2ch.net/test/read.cgi/php/1164617202/
356NAME IS NULL:2007/01/21(日) 21:04:00 ID:???
PHP4とMySQL5.0でユーザー参加型のサイトをつくろうと思い
とりあえずユーザーデータを登録するテーブルを作りました
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| user_id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(16) | YES | | NULL | |
| image | mediumtext | YES | | NULL | |
| intro | text | YES | | NULL | |
| grade | int(11) | YES | | NULL | |
| password | varchar(20) | YES | | NULL | |
| session_id | text | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
そこで
insert into users VALUES(3, 'もなー', '', 'もなー', 2, PASSWORD('mona'), NULL);
といった感じでユーザーを追加して、パスワードの比較のために
SELECT * FROM users WHERE password = PASSWORD('mona');
とするとEmpty setが返ってきます
暗号化されたパスワードを直接渡すときちんと結果が返ってきます

passowrd関数はこういった比較には使えないのでしょうか
357356:2007/01/21(日) 21:17:17 ID:???
自己解決しました
mysqlのユーザーデータベースだとパスワードのフィールドが
char(41) NOT NULLになってたので同じようにしたらいけました
358NAME IS NULL:2007/01/21(日) 23:49:00 ID:???
>>356-357
スレ汚し乙
359NAME IS NULL:2007/01/23(火) 00:03:17 ID:RR7aBLcY
MySQL5って””(空文字)とnullって同じ扱いですか?
360NAME IS NULL:2007/01/23(火) 09:49:43 ID:???
>>359
当然、別物
361NAME IS NULL:2007/01/23(火) 11:13:39 ID:JErTPzEo
MySQLとphpMyadminではSQL文の書き方は変わりますか?

今までコマンドでテーブルとか作ってたんですけど、
そのSQL文をphpMyadminにそのままコピペして
実行したらエラーになるんですけど
なぜでしょうか?
362NAME IS NULL:2007/01/23(火) 13:26:38 ID:???
>>361
使えない関数がある
363NAME IS NULL:2007/01/23(火) 15:10:07 ID:???
PDOの制限?
364NAME IS NULL:2007/01/23(火) 15:28:32 ID:TxOCOeOc
>>361
SQL文さらしてみ
365NAME IS NULL:2007/01/23(火) 23:01:20 ID:c4+f0u4t
下記のSQL文でエラーになります。
どうも$name = nullと変数でvalues句を書いてあるのがまずいようなのですが、対処法を教えて下さい。

$name = null;
$SQL=insert into master (code, name)
values ($code, $name);
$rst = mysql_query($sql, $con);
366361:2007/01/23(火) 23:17:53 ID:zXJ7X6gV
INSERT INTO user(name,pass,prof,time) VALUES('$name','$pass','$prof',NOW());
これだとエラーでる。

INSERT INTO `user` ( `name` , `pass` , `prof` , `time` )
VALUES ('$name', '$pass', '$prof', NOW( ))
↑phpMyadminが自動で作った文。これだとオッケー。

なんか間違ってますか?
367NAME IS NULL:2007/01/23(火) 23:26:27 ID:???
>>365
最終的なSQLを見直せ。
それでも原因がわからないならPHPスレいってこい。
368NAME IS NULL:2007/01/24(水) 00:06:36 ID:jkm3DVLk
商品の価格とかIDのカラムに使うデータ型ってどんなのにするのが一般的なんでしょうか?
今読んでる参考書ではOracleでnumber、sql serverでnumericを使ってました。
369NAME IS NULL:2007/01/24(水) 00:16:51 ID:???
どう扱うかに寄ると思う。
単なる表示なら文字列で良いし、金額として扱うなら数字列として扱わないと。
370NAME IS NULL:2007/01/24(水) 13:06:26 ID:???
>>365
SQLとか以前に、PHPの勉強をしたほうが良いと思ふ。
371NAME IS NULL:2007/01/24(水) 18:17:38 ID:N18QCmic
>>365
なんで文字列がクォートされてないんだ?
372NAME IS NULL:2007/01/24(水) 19:13:30 ID:???
お前ら様、イタチっぽいけど質問してみる。
php でコネクションプールする時って、Postgre だと pgpoolを使うようだけど、
mysqlの人は一般的に何使うの?
373NAME IS NULL:2007/01/24(水) 22:23:48 ID:???
気合い入れてMySQL勉強しようとして色々調べてみると
現役で3.23、4.0、4.1、5.0、5.1とバージョン乱立状態で
びっくりしています

薦めてもらった参考書籍が4なんですけど4で勉強しておk?
374NAME IS NULL:2007/01/24(水) 22:48:22 ID:N18QCmic
どこまで高度な機能を使いたいかによるんじゃね?
個人的には最新の物を使っておく方がいいと思うけど。
もちろんすでに動いているシステムのお守りをするとか
なら話は別。
375NAME IS NULL:2007/01/25(木) 00:22:12 ID:???
376NAME IS NULL:2007/01/25(木) 00:30:54 ID:???
Perl勉強し始めたばかりなんですけど、linuxでMySQLを使いたいと思ってます。
Windowsのパソコンにバックアップする方法を質問させて下さい。

MySQLのバックアップの方法で、テキスト形式で保存する方法と
ユーザーのディレクトリごとファイルをそのままコピーする方法があって、
ユーザーのディレクトリごとファイルをそのままコピーする方法の場合は、
書き込みをしてないときじゃないとだめと手元の本に書いてありました。

ttp://centossrv.com/backup.shtml
tar+GnuPG+rsync/ftpの方法わかりやすく解説してくれているページがあったので、
Windowsのパソコンと繋げて、自動的にファイルを送信して
バックアップできるような環境は作りました。

MySQLを停止しないで、ユーザーのディレクトリごとというのは、
上記のtar+GnuPG+rsync/ftpの方法で大丈夫でしょうか?
動いたままの場合は、テキスト形式のINSERT文ので保存という方法じゃないと
いけないでしょうか。
377NAME IS NULL:2007/01/25(木) 01:21:24 ID:???
可能だと思うよ。
myisamの場合は、すべてのテーブルをロックすればいいと思う、確か。
378NAME IS NULL:2007/01/25(木) 01:25:52 ID:???
安定志向だと、いまだに4.0.xだな。3.xは捨てていい。
4.1.xと5.xはお好みでどうぞ。
379NAME IS NULL:2007/01/25(木) 07:52:24 ID:3QpAimLx
InnoDB エンジンを使っています。
phpMyAdmin からリレーションを設定するとき、
ON UPDATE CASCADE や ON DELETE SET NULL は設定できるのに
ON UPDATE RESTRICT や ON DELETE RESTRICT は設定できません。
なぜなのでしょうか?
380NAME IS NULL:2007/01/25(木) 09:49:23 ID:???
>>377
mysqlhotcopyっていう、コマンドが書き込み禁止して
コピーできるようなので、これで大丈夫そうです。
ありがとうございました。
381NAME IS NULL:2007/01/25(木) 20:15:28 ID:TMAc24eL
>>373 4.0で十分 4.1でもOK 5は・・・
382NAME IS NULL:2007/01/25(木) 22:45:04 ID:OIUp2Onh
>>381
kwsk
383NAME IS NULL:2007/01/27(土) 19:01:13 ID:???
同一マシンで以下の感じで同時起動を行っています。
格納ディレクトリはもちろん別々です。

【Mysql4.0】
--
port=3306
socket=/tmp/my4.0.cnf
--

【Mysql4.1】
--
port=3307
socket=/tmp/my4.1.cnf
--

設定を確認すると別々に起動しています。
しかし、スクリプト経由で接続を試みると、
どうしても4.0の方にしか接続できません。
分かった事は、何やら適当なポートで接続を試みてもすべて4.0に接続しているようです。

これが原因だとは思うのですが、
なぜport3306と指定しているのに3306以外でも接続できてしまうのでしょうか?
どうすれば指定された別々のポートでそれぞれのMysqlに接続させることができるのでしょうか?

どなたかこの解決策をご教授頂ければ嬉しいです!
384NAME IS NULL:2007/01/27(土) 19:05:26 ID:???
>>383
あっ間違えました、、。

(誤) socket=/tmp/my4.0.cnf
(正) socket=/tmp/my4.0.sock

(誤) socket=/tmp/my4.1.cnf
(正) socket=/tmp/my4.1.sock

です。すんません、、。
385NAME IS NULL:2007/01/27(土) 21:50:32 ID:???
そもそも、そのスクリプトって何? perl php etc、、、
386NAME IS NULL:2007/01/28(日) 00:08:56 ID:???
ソケットで接続してるんじゃないの?
387NAME IS NULL:2007/01/28(日) 02:35:10 ID:???
DB構築の質問させてください。

ベートーベンをDBに登録する際
現在は、カラムcategory1に入れるデータは「作曲家」としています。
しかし、カテゴリーの階層を深くしようと思いまして問題が生じました。

カテゴリーが作曲家>ドイツと増えた場合
カラムcategory1に「作曲家」category2に「ドイツ」と入れたほうがいいのでしょうか?

それともカラムcategory1は1つだけにして
カラムcategory1に「作曲家 ドイツ」と入れたほうがいいのでしょうか?

そのあと、作曲家>ドイツ>古典派音楽などと増えるかもしれません。
よろしくお願いします。
388NAME IS NULL:2007/01/28(日) 03:40:03 ID:???
>385
phpでございます。

>386
ソケットで接続とは何でしょうか、、。
勉強不足ですね。調べてきます!
389NAME IS NULL:2007/01/28(日) 04:14:34 ID:???
>>384

誘導。

くだすれPHP(超初心者用)2
http://pc10.2ch.net/test/read.cgi/php/1164617202/
390NAME IS NULL:2007/01/28(日) 08:16:13 ID:???
>問題が生じました。

どういう問題が生じたのか、、そもそも何をしたいのか
391NAME IS NULL:2007/01/28(日) 14:13:16 ID:VCQn8Y2V
pgphpmyadminでパスワード変更をしたら
アクセスが拒否されてしまうようになりました

http://phpspot.net/php/pgphpmyadmin%83p%83X%83%8F%81[%83h%95%CF%8DX%95%FB%[email protected]

↑を参考にしたのですがどうすればいいのでしょうか?
392NAME IS NULL:2007/01/28(日) 14:34:20 ID:HTTxxsnH
>>391
設定ファイルを修正しろ
393NAME IS NULL:2007/01/28(日) 15:02:56 ID:VCQn8Y2V
設定ファイルとはconfig.inc.php ですか?
394NAME IS NULL:2007/01/28(日) 16:03:05 ID:???
>>393
yes
395NAME IS NULL:2007/01/28(日) 17:48:54 ID:l5IiUVmp
MySQLのレプリケーションって結構使えるね。
たとえできたとしても更新系のクエリを2箇所以上で出すような設計にはしないので
MySQLでも十分に負荷分散できるケースも多いと感じた。
ってすでにレプリケーション機能を仕事でも使っている人たちに
してみれば何をいまさらっていわれそうだが。
396NAME IS NULL:2007/01/28(日) 20:38:48 ID:???
何をいまさら
397NAME IS NULL:2007/01/29(月) 01:21:28 ID:???
select限定用途の話?
最初から事前にselectしといて静的生成したhtmlを大量のアパチで捌けば良いじゃん。

普通は、トラッキングとかセッション管理で更新も処理が集中するけどな。


テーブル設計の話は、マイスクーエルじゃ無くてもあり得る話なのですれ違い。
DB設計を語るスレ
http://pc10.2ch.net/test/read.cgi/db/1166540159/l50
398NAME IS NULL:2007/01/29(月) 17:59:09 ID:???
MySQL AB :: MySQL 5.0 Downloads
http://dev.mysql.com/downloads/mysql/5.0.html

で配布されてる 5.0.27 の Windowsバイナリって、
CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
(Not Nullでデフォルトの項目値を使用しない)
になっているようなんだが、5.0系のWindowsバイナリは全部そうなのかい?
399NAME IS NULL:2007/01/29(月) 18:25:12 ID:???
気に入らないなら自分でコンパイルすれば?
アクセス使ってもいいお。
400NAME IS NULL:2007/01/29(月) 19:46:02 ID:???
不毛な回答だな。むー。めんどくさいが、
コンパイルついでにSennaでも組み込んでみるか。
401NAME IS NULL:2007/01/29(月) 20:37:06 ID:???
オープンソースで無料で使ってるくせにめんどくさいと思うなら使うな。
一行でもコード書いてから面倒だと言えよ。

むしろ、めんどくさくないヲレSQLでも作ってGPL配布してくれ。
402NAME IS NULL:2007/01/29(月) 21:15:34 ID:???
結論:Windowsで使うのが悪いw
403NAME IS NULL:2007/01/30(火) 00:25:26 ID:???
ウィンドウズ版の配布辞めれば良いのにな。
ABかソフトエージェンシーから、サポート付きで購入で良いじゃん。
404NAME IS NULL:2007/01/30(火) 00:39:10 ID:???
>>403
それは困る
405NAME IS NULL:2007/01/30(火) 01:01:08 ID:???
default-table-typeとdefault-storage-engineはどう違うのですか?
406NAME IS NULL:2007/01/30(火) 03:02:00 ID:???
>>405
http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html
The older term TYPE is supported as a synonym for ENGINE for
backward compatibility, but ENGINE is the preferred term and
TYPE is deprecated.
407391:2007/01/31(水) 00:26:38 ID:hN4uVf3g
phpmyadminの設定ファイル入れなおしたんですが直りません
アクセスが拒否されてしまいます助けてください
408NAME IS NULL:2007/01/31(水) 11:37:07 ID:???
phpスレに逝けよ。mysql以前の問題。
409NAME IS NULL:2007/01/31(水) 19:19:19 ID:d37pcvzq
mysql> select curdate() + 1 "tomorrow";
+----------+
| tomorrow |
+----------+
| 20070132 |
+----------+
1 row in set (0.00 sec)

こんなん出たんですけど、どこをどう直せばいいんでしょうか?
仕様?
410NAME IS NULL:2007/01/31(水) 19:40:49 ID:???
select date_add(curdate(), interval 1 day) "tomorrow";
+------------+
| tomorrow |
+------------+
| 2007-02-01 |
+------------+
411NAME IS NULL:2007/01/31(水) 20:25:07 ID:???
マニュアルぐらい見ろって感じだな。orz
412NAME IS NULL:2007/02/01(木) 11:25:10 ID:???
>>410
バグってんなそれww 今日は32日だろww

さ、今月納期の仕事の続きでもやるか
413NAME IS NULL:2007/02/01(木) 21:36:10 ID:xhkoroiq
mysql 3.* を使っていたPCが起動しなくなりました・・・
別ディスクから起動して、データのバックアップをとろうと思うのですが、
こういう場合のデータの移し方、戻し方はどうすればよいのでしょうか?
414NAME IS NULL:2007/02/01(木) 22:52:27 ID:???
同じ3系なら普通にDBファイルをコピーすれば大丈夫
415NAME IS NULL:2007/02/02(金) 14:00:09 ID:???
SELECT `hoge`.`title`, `hoge2`.name`, `hoge`.`time` FROM `hoge`, `hoge2`
WHERE `hoge`.`seq`=`hoge2`.`seq` and `hoge2`.`title`!=NULL ORDER BY `hoge`.`time` LIMIT 0,10

SELECT `title`,`time` FROM `hoge`
WHERE `seq`=NULL and `title`!=NULL ORDER BY `time`
この2つのクエリを1つのクエリにまとめたいのですが、どんな書き方があるでしょうか?

`title`がNULLでないもの
`seq`がNULLの場合は、`hoge2`.`name`を取得しない
416NAME IS NULL:2007/02/02(金) 14:43:40 ID:???
LEFT JOIN
417NAME IS NULL:2007/02/04(日) 07:54:21 ID:???
今ダウンロード出来るWindows用のODBCドライバはWindowsVistaで動作しますか?
418NAME IS NULL:2007/02/04(日) 16:07:39 ID:???
しません
419NAME IS NULL:2007/02/05(月) 00:33:56 ID:???
mysqlの5.0.27を解凍しSetup.exeを起動させると
Mysqlのインストーラーが起動せず、Windows(R)インストーラ.V3.01.4000.1823
というものが起動し、インストールオプションが表示されます。
そのオプションに従ってインストールをしようとしても
「インストールパッケージを開くことができませんでした」と表示されるだけでインストール出来ません。
何がいけないのか分からないのですが、教えてもらえないでしょうか?
420NAME IS NULL:2007/02/05(月) 10:15:22 ID:Tg55N+ZV
>>419
漏れはあんまり Windows 使わないんで外しているかもしれないけど、
C:\work とかの適当なフォルダを作ってそこからインストーラ
実行したらうまくいくかもしれないよ。
421NAME IS NULL:2007/02/05(月) 21:21:19 ID:???
>>419
windowsで使おうとするのが間違い。
422NAME IS NULL:2007/02/05(月) 22:36:40 ID:pdKSXmsm
datetime型のdefault値について聞きたいのですが、
timestamp型のようにNULLの場合は現在の時刻が
自動的に入るようなDefault値は設定できないのでしょうか?

pgsqlのようにnowやCURRENT_TIMESTAMPを設定しようとしても
「Invalid default value」と出てうまくいきません。
やり方がわかる人がいらっしゃればご享受願います
423NAME IS NULL:2007/02/05(月) 22:50:48 ID:???
424NAME IS NULL:2007/02/05(月) 22:58:59 ID:???
>>423
質問する前に一通り調べてみたんですが、貼ってくれてるURLの
場所にもdefault値についての言及はとくになかったんですよ…
425NAME IS NULL:2007/02/05(月) 23:11:01 ID:???
>>424
MAXDB モードで動かしてるわけ?
426NAME IS NULL:2007/02/05(月) 23:30:06 ID:???
>>425
モードの見方わかりませんがモードで動作が変わるのはtimestamp型ですよね?

いろいろ漁ってたらmysqlのdatatime型のdefault値は定数以外だめという記述みつけました…
お騒がせして申し訳ないです
427NAME IS NULL:2007/02/05(月) 23:53:47 ID:???
ああ、自動で時間設定できる型を知りたいんじゃなくて、
datetimeになんとか自動で時間設定したいって話か。
勘違い。
428NAME IS NULL:2007/02/05(月) 23:59:10 ID:???
データベースなんて物をビスタで動かそうだなんてバカだな。
1年ぐらい様子見するべき。

もちろんリナックスでも、リリース1年ぐらいは様子見しないと危険だ。
429NAME IS NULL:2007/02/06(火) 01:47:46 ID:???
でも様子を見る為に動かしてみるとか開発に使ってみるとかは必要じゃね?
実際はビスタ自体が安定するのが1,2年はかかるだろうけどさ。
430NAME IS NULL:2007/02/06(火) 01:58:32 ID:???
ビスタ自体が安定しないのに、開発に使う意味ってないし。
顧客に訊かれて動きませんって答えときゃ良い話。

SP1まで放置で良いと思う。
431NAME IS NULL:2007/02/06(火) 03:28:04 ID:HH7oi8Fy
いまのうちから動作確認というか挙動の確認は必要じゃないか?
432NAME IS NULL:2007/02/06(火) 04:36:09 ID:???
質問させて下さい。
以下を参照したのですが、良い方法が見つかりません。
http://dev.mysql.com/doc/mysql/ja/
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ

WinXP Sp2
mysql-5.0.17-win32.msi
PHP5.1.6
と言う構成で運用しています。
■内容:目的のSQL文が思いつきません
CREATE TABLE `s_bbs` (
`s_bbs_no` int(10) unsigned NOT NULL default '0',# 掲示板NO
`s_bbs_res_no` int(10) unsigned NOT NULL default '0',# 掲示板レスNO
`s_bbs_name` varchar(32) NOT NULL default '',# 名前
`s_bbs_word` varchar(256) NOT NULL default '',# 発言
`s_bbs_reg_date` datetime NOT NULL default '0000-00-00 00:00:00',# 登録日時
`s_bbs_del_flg` tinyint(1) unsigned NOT NULL default '0',# 削除フラグ
UNIQUE INDEX (`s_bbs_no`, `s_bbs_res_no`)
) ENGINE=InnoDB DEFAULT CHARSET=ujis;
上記の様な簡単なBBSのテーブルを対象に各掲示板NO(`s_bbs_res_no`)毎の最新レスNO(`s_bbs_res_no`)を取得したいのですが、
その際に、最もレスNO(`s_bbs_res_no`)の高いものを含む、掲示板NO(`s_bbs_res_no`)のTOP10を取得したいのです。

SELECT `s_bbs_no` , `s_bbs_res_no` , `s_bbs_word`
FROM `s_bbs`
WHERE 1
AND `s_bbs_del_flg` = '0'
GROUP BY `s_bbs_no`
ORDER BY `s_bbs_res_no` DESC
LIMIT 0 , 10
このようなSQL文を書いたのですが、これでは`s_bbs_res_no`が1になってしまいます。
これを元にASCにしてみたり、GROUP、ORDER要素を増やしてみたりDISTINCTを使ってみたり
したのですが上手くいかず、やけくそで

SELECT `s_bbs_no` , `s_bbs_res_no` , `s_bbs_word`
FROM `s_bbs`
WHERE 1
AND `s_bbs_del_flg` = '0'
AND `s_bbs_no` = (SELECT `s_bbs_no` FROM `s_bbs` WHERE `s_bbs_del_flg` = '0' AND GROUP BY `s_bbs_no` ORDER BY `s_bbs_res_no` DESC LIMIT 0 , 10)
ORDER BY `s_bbs_res_no` DESC
LIMIT 0 , 10

こんなSQL文も書いたのですが、当たり前の如くSQLエラーです。
TOP10と言うのは暫定で50や100になる可能性もあるのでSQL文をPHPスクリプトのループの中で何回も発行する
ようなやり方は避けたいのです。
どうかお力添えを頂けないでしょうか。
宜しくお願い致します。
433NAME IS NULL:2007/02/06(火) 06:02:54 ID:???
>>432

誘導。

くだすれPHP(超初心者用)2
http://pc10.2ch.net/test/read.cgi/php/1164617202/
434NAME IS NULL:2007/02/06(火) 06:44:31 ID:???
>>431
別にビスタ用の機能があるわけでもないでしょ?

だから今確認したところで、それは1,2年もしたら
動いた動かなかったの挙動はガラッと変わるのさ。
正に無駄な情報ね。 他の事を追求すれば?
435NAME IS NULL:2007/02/06(火) 06:50:39 ID:???
>>433
PHPに厄介払いされても困るぞ。一応SQLの書き方の質問だろ(笑

>>432
トップ10の基準がわからないが、掲示板ごとの一番高いレス番号の順ということでいいのかな?
それならまず、掲示板ごとに一番高いレス番号を求めればいい。
select max(レス番号) from hogehohe group by 掲示板番号
それをレス番号ごとに並べる。
order by max(レス番号)
さらにベスト10なら
LIMIT 0 , 10
436NAME IS NULL:2007/02/06(火) 07:21:07 ID:???
昔はcgiでのサーバ負荷増大で「cgi使用禁止」なサーバが多かったけど、
この調子で行くと、「mysql使用禁止」とか言われるのも近いかもなー

ヘボクエリ多すぎる・・・・
437NAME IS NULL:2007/02/06(火) 14:06:56 ID:???
>>435
レス有り難うございます。
>>掲示板ごとの一番高いレス番号の順ということでいいのかな?
おっしゃる通りです。

SELECT `s_bbs_no` , MAX(`s_bbs_res_no`) , `s_bbs_word`
FROM `s_bbs`
`s_bbs_del_flg` = '0'
GROUP BY `s_bbs_no`
ORDER BY MAX(`s_bbs_res_no`) DESC
LIMIT 0 , 10

これで見事目的達成できました。有り難うございました!
438NAME IS NULL:2007/02/06(火) 15:54:52 ID:???
すみません、MySQLというよりはphpMyAdminの質問になってしまうのですが、
phpMyAdminの表示が崩れてしまう原因が分からなくて困っています。

こんな感じです
ttp://www.tensyon.net/log/088.jpg

ブラウザで右クリックして『最新の情報に更新』とすると正常に表示される
のですが、リンクを1つクリックするたびにこんな感じで崩れてしまいます。

原因が予測できる方はいらっしゃいますでしょうか?
宜しく御願い致します。

※ユーザーの追加やテーブルの追加などの操作自体はできます
439NAME IS NULL:2007/02/06(火) 16:28:50 ID:28fls66X
Windows XP から MySQL5.0.32-3 on Debian GNU/Linux sid への接続について質問です。

CSE http://www.hi-ho.ne.jp/tsumiki/
というGUIのソフトでMySQLへの接続ができるのですが、
libmysql.dll のバージョンが古いためMySQL5.0以上への接続ができません。

MySQL Query Browser http://www-jp.mysql.com/products/tools/query-browser/
はMySQL5.0以上に対応していますが、DBがEUCだと文字化けします。

どなたかMySQL5.0以上でEUCのDBへ接続して文字化けしない方法をご存知でしょうか?
上記の2つ以外のソフトでもよいです。
440NAME IS NULL:2007/02/06(火) 17:23:30 ID:3UofMbcj
初めてLinuxを触りました。
MySQLをインストールしようと思い、
http://joshin.sakura.ne.jp/runa/2005/12/
を参考にしようとしたのですが
mt-config.cgiがありません。
どこにあるのでしょうか?

ちなみにFedora Core5です
441NAME IS NULL:2007/02/06(火) 17:35:33 ID:???
>>440
mt-config.cgi は MySQL のファイルではなくて、MovableType のファイルだろ。
まず、「MySQLのインストール後、MovableType用に設定を行う。」以下を実行してDBを作成してから
http://www.sixapart.jp/movabletype/mt3/license.html
で MovableType をダウンロード。
ダウンロードしたファイルを解凍すると mt-config.cgi があるので設定すべし。
442NAME IS NULL:2007/02/06(火) 18:19:42 ID:???
>>439
MySQL Query Browserは文字コードを自動的に合わせてくれたような気もしたけど・・・。
Win経由ならMySQLのODBC DriverインストールしてCSEをODBC経由で接続すればいけるかも。
他のソフトでもいいなら、私のお勧めは「SQLTerm2ND」が、まだ開発も続いてて安心。
ttp://www.anys.ne.jp/~ken/

>>440はリンク先の説明で混乱してるだけでは・・。
バージョン表記がなかったのでとりあえず下の公式リファレンスで。
ttp://dev.mysql.com/doc/refman/4.1/ja/index.html
443NAME IS NULL:2007/02/06(火) 18:22:51 ID:???
>>438
configで
$cfg['PmaAbsoluteUri'] = '';
にPMAのディレクトリをフルURLで記述してみたらどうなりますか?
444NAME IS NULL:2007/02/06(火) 18:35:39 ID:???
>>443
アドバイス有り難う御座います。

ちなみに、現在は
$cfg['PmaAbsoluteUri'] = $_SERVER["HTTP_HOST"] . '/phpMyAdmin/';
と記述しているのですが、

$cfg['PmaAbsoluteUri'] = 'http://www.hogehoge.com/phpMyAdmin/';
とやっても、やはり崩れてしまいました。

他に疑う所がありますでしょうか?
宜しく御願い致します。
445439:2007/02/06(火) 20:16:33 ID:???
>>442
ODBCなら無難ですね。
SQLTerm2ND使ってみます。
どうもありがとうございます!
446NAME IS NULL:2007/02/06(火) 21:30:01 ID:???
おまいら、妙に親切だなw
447NAME IS NULL:2007/02/06(火) 21:52:36 ID:???
仕事なら時間を無駄にしたくないからビスタはスルーだな。
ビスタ対応で顧客が金くれるなら別だが、ほとんどは割に合わずに赤字になると思う。


phpMyAdminはPHP板にどうぞ。


MTの話もPHP板にどうぞ。
448NAME IS NULL:2007/02/07(水) 17:52:03 ID:2NzsKvRJ
TIME型で格納されている、24:45:00と19:00:00の差を計算するのはどうすればよいでしょうか?
MySQL 4.0.26でTIMEDIFF()は使えません。

DATE_FORMAT(
DATE_SUB( CONCAT('2001-01-01 ','24:45:00'), INTERVAL '19:00:00' HOUR_SECOND),
'%H:%i')

↑など色々やってみましたがギブアップです。
御教示おねがいしますm(_ _)m
449NAME IS NULL:2007/02/07(水) 19:41:32 ID:???
MySQL4.1.11でDBのコピーを行おうと思ってます。
db1 というDB(UTF-8)があったとして、

mysqldump db1 > db1.sql
mysqladmin create db2
mysql db2 < db1.sql

を行うと

ERROR 1054 (42S22) at line 2108: Unknown column '0x' in 'field list'

というエラーのせいでインポートが行われません。
どう回避すればよいのでしょうか?
450NAME IS NULL:2007/02/08(木) 00:17:11 ID:???
英語ぐらい読めよ。
2108行目をコピペ汁!
MySQLってUTF8で格納してるけど、UTF8変換はしてるのね?

漏れならいったんユニックス時間に変換して計算後に再変換。
451449:2007/02/08(木) 01:49:27 ID:???
>>450
2108行目は
INSERT INTO `c_admin_user` VALUES (1,0x61646D696E,0x3332393433356535653636626538303961363536616631303566343234303165...................
です。
0x616... というのがアウトっぽいです。
UTF8変換というのは mysql db2 < db1.sql のときになにかするってことでしょうか?
452NAME IS NULL:2007/02/08(木) 02:16:03 ID:???
データ吐く時になんかやっちまったみたいだな
漏れなら変換スクリプト書いて回避する。

簡単な回避方法あるなら他の人ヨロ
453NAME IS NULL:2007/02/08(木) 11:04:16 ID:???
mysqldumpで出力されるバックアップSQLの中身って
マルチバイト文字の部分等、テキストエディタで見ても
文字化けせずに見れるもんですか?
454NAME IS NULL:2007/02/08(木) 11:57:28 ID:???
>>453
dumpする文字コードに対応しているテキストエディタなら見れる。
455NAME IS NULL:2007/02/08(木) 12:04:10 ID:???
>>454
ということは文字コードが対応しているテキストエディタで化けているのは
バックアップデータ自体が不正な可能性があるということですね。

ありがとうございました。
456NAME IS NULL:2007/02/08(木) 12:05:01 ID:???
>>449
dump時とimport時の文字コードが合ってないんじゃないのか?
コンソールから ↓で確認してみ。
show variables like 'character_set_%';
457449:2007/02/08(木) 16:19:45 ID:???
>>456
ありがとうございます。
どちらのDBも
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
という結果になりました。
character_set_database | latin1
ってutf8じゃないんですが、やばいのですかね?
458449:2007/02/08(木) 16:25:03 ID:???
ちなみに、/etc/mysql/my.cnf は
default-character-set=binary
set-charset
となってます。
459449:2007/02/08(木) 16:29:16 ID:???
>>458
たびたびすいません。
default-character-set=binary とか設定されてるのは
[mysqldump] の項だけで、
[client] [mysqld] の項では character 関係は何も設定されてません。
460NAME IS NULL:2007/02/08(木) 19:19:25 ID:???
>>449
かなりやばい。
dumpする文字コードとインポートする文字コードを合わせる。
my.confで文字コードをしっかり設定する。
または、↓のように引数指定もできるが。
mysql --default-character-set=utf8 < dump.sql
461449:2007/02/08(木) 19:43:01 ID:???
>>460
ありがとうございます。
以下のように行いました。

mysqldump --default-character-set=utf8 db1 > db1.sql
mysql
CREATE DATABASE db2 CHARACTER SET utf8;
\q
mysql --default-character-set=utf8 db2 < db1.sql

すると

ERROR 1054 (42S22) at line 2969: Unknown column '0x' in 'field list'

となります。

キャラクターセットを指定したおかげで db1.sql は utf8 のテキストファイルなのですが、
一部 '0x' で始まるデータのようです。
そのため上記のエラーが出た模様です。

my.cnf の [mysqld] で default-character-set=utf8 とすると
他の EUC のスキーマが文字化けするためそのままにしてあります。。。
462NAME IS NULL:2007/02/08(木) 19:57:15 ID:???
今度は2969行をコピペしろよ。
おまいが自己判断した情報自体が間違ってないと言い切れるのか?

ここは無料テクサポじゃないから、後出しは厳禁だぞ。
EUCなんて今聞いた。EUCとUTF8の混在なんじゃないの?
463448:2007/02/08(木) 20:09:26 ID:7huK8HWe
(´・ω・`) 盛り上がってるところ申し訳ないですが、もしよければ宜しくお願い致します。。
464NAME IS NULL:2007/02/08(木) 21:37:44 ID:???
>>448
覚悟を決めて、4.1系か5.0系にウップしろ。
465449:2007/02/08(木) 22:02:24 ID:???
>>462
2969行は
INSERT INTO `c_member_secure` VALUES (1,1,0x3332393433356535653636626538303961363536616631303566343234303165.....
となっています。
このテーブルの定義が
CREATE TABLE `c_member_secure` (
`c_member_secure_id` int(11) NOT NULL auto_increment,
`c_member_id` int(11) NOT NULL default '0',
`hashed_password` blob NOT NULL,
`hashed_password_query_answer` blob NOT NULL,
`pc_address` blob NOT NULL,
`ktai_address` blob NOT NULL,
`regist_address` blob NOT NULL,
`easy_access_id` blob NOT NULL,
PRIMARY KEY (`c_member_secure_id`),
UNIQUE KEY `c_member_id` (`c_member_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
なので、エラーの出たカラムは hashed_password のようです。
blob型だとうまくインポートできないのでしょうか?
また、EUCというのは今回の対象外のスキーマ(DBというのでしょうか)です。
466NAME IS NULL:2007/02/09(金) 01:11:16 ID:NeOGJ2LI
>>387
>87 名前: NAME IS NULL Mail: sage 投稿日: 2007/01/28(日) 02:35:10 ID: ???
>DB構築の質問させてください。
>
>ベートーベンをDBに登録する際
>現在は、カラムcategory1に入れるデータは「作曲家」としています。
>しかし、カテゴリーの階層を深くしようと思いまして問題が生じました。
>
>カテゴリーが作曲家>ドイツと増えた場合
>カラムcategory1に「作曲家」category2に「ドイツ」と入れたほうがいいのでしょうか?
>
>それともカラムcategory1は1つだけにして
>カラムcategory1に「作曲家 ドイツ」と入れたほうがいいのでしょうか?
>
>そのあと、作曲家>ドイツ>古典派音楽などと増えるかもしれません。
>よろしくお願いします。

将来的のどうなるかわからないので、仕様/納期/予算/メンバーのレベルの問題だと思うけど
主にアプリケーションエンジニアでDBエンジニアでない俺からすると
カテゴリーとか切っちゃって同じテーブルに入ってると、あとで仕様変更が
あった時とかに嫌な気がするなぁ。

属性ってテーブルをもう一個切って
(ベートーベンの主キー、作曲家)
(ベートーベンの主キー、ドイツ)
見たいにして
やったほうがいいんじゃないかね。
例えば、ドイツ>作曲家とかになっても対応できるし、どんどん増えてても
なんとかなるし、属性が作曲家でアメリカ生まれとかAND OR検索するときとかも
楽だろうし。

いまのだと、発明家かつ作曲家みたいなかんじの人だとちゃんとDBにしまえないんじゃない?


467460:2007/02/09(金) 11:38:53 ID:???
>>449
親切なオレが詳しく説明してみる。
ダンプコードをバイナリにしている理由は何?
mysqldump --default-character-set=utf8 dbfile とかして人間が認識できる
文字コードで取り出す。別にsjisだっていいよ。
それを昨日説明した通り文字コードを合わせて mysqlに食わせる。
で、エラーが出たらその行をここに晒す。
468NAME IS NULL:2007/02/09(金) 19:52:46 ID:???
久々にバージョンウpでもしようと思って

ttp://www.softagency.co.jp/products/mysql/download/
に行ったらディレクトリ諸三重。それはどーでもいいけど、どれをダウンしたら
良いのやら
469NAME IS NULL:2007/02/09(金) 20:50:03 ID:???
?本家 ttp://www.mysql.com/ からダウンしない?
470NAME IS NULL:2007/02/10(土) 15:48:39 ID:sByzs8Nl
Ver5.0.27でテーブルを定義しました。2項目

この2つの間に新規の項目を追加するにはどうしたらいいですか?
471NAME IS NULL:2007/02/10(土) 17:48:49 ID:???
alter table テーブル名 add 追加カラム定義 after カラム名
472470:2007/02/10(土) 18:08:46 ID:???
>>471
丁寧にありがとうございます
473NAME IS NULL:2007/02/10(土) 18:09:45 ID:???
set namesが有効なのは4.1以上だっけ?
474449:2007/02/10(土) 23:19:22 ID:???
>>467
ありがとうございます。
>>461 にもあるとおり、文字コード指定してダンプしましたがうまくいきません。
varchar とかは utf8 の可読な文字列になるのですが、
blob だとバイナリのため、0x で始まるコードのようになるのが原因のようです。
475NAME IS NULL:2007/02/11(日) 00:11:44 ID:???
バイナリも扱えないとdump/restoreの意味ないけどな。
もう素人じゃ無理だろうから、プロ雇うなり、ABやソフトエージェンシに泣きついたら?
476NAME IS NULL:2007/02/11(日) 01:39:19 ID:???
code = "ABCD"で日付が降順で上位5件の合計を取りたいのですが、下記SQL文ですと、
code = "ABCD"全件の合計値が算出されますが、どう表記したらいいのかな?

select sum(price) from pricelist where code = "ABCD" group by code order by date desc limit 0,5;
477NAME IS NULL:2007/02/11(日) 02:06:39 ID:???
サブクエリ
478NAME IS NULL:2007/02/11(日) 13:40:02 ID:???
>>477
サブクエリ使うのと、普通に5レコードループして加算させるのはどっちが
早いんだろ?
479NAME IS NULL:2007/02/12(月) 13:59:33 ID:???
漏れだと5件の加算ぐらいは、ウェブアプリケ−ション側で遣らせるな。
何でもSQLで解決してDBに負担掛けるとパフォーマンス悪い。
480NAME IS NULL:2007/02/12(月) 14:26:46 ID:/s74tiRC
>>479
SQLで処理するかウェブアプリで処理するかの分岐ってどう判断してますか?
481NAME IS NULL:2007/02/12(月) 14:36:17 ID:???
>>479
合計値くらいなら、DBでやらせる方がいいだろ。
レコード5件分送信する方が負担掛かる。
482NAME IS NULL:2007/02/12(月) 15:01:14 ID:???
サブクエリで二回処理させるほうが重いです。
483NAME IS NULL:2007/02/12(月) 15:16:06 ID:???
はあ?
2回じゃなくて、+1回の差だろ。
上位五件まで絞ってそのまま転送するか、
上位五件まで絞って合計値計算してそれを転送するか、
の違いなんだから。
上位五件までの絞込みすらしないといっているのか?
だとしたら、アホ過ぎ。
484NAME IS NULL:2007/02/12(月) 19:26:52 ID:???
条件を複雑にすることでindexから外れてしまうことも多々あるので、
indexに沿う形で取得して自前で処理した方が速かったりする。

単純に量の多い少ないだけでは見分けがつかない。
485NAME IS NULL:2007/02/12(月) 22:44:52 ID:???
現在MySQL 4.1.20を使っています(Winですが w)。これを5.0系列にバージョンアップしたいなと思ってるんですけど、
4.1.Xの中では何回かやってますが系列が違うものへのアップはこれが初めてなんで、注意点とかあったら教えてください。
486NAME IS NULL:2007/02/12(月) 22:51:54 ID:???
マニュアル読んだほうが早いんじゃね
487NAME IS NULL:2007/02/12(月) 22:54:45 ID:???
>>485
4.1 -> 5.0ならばさほど大きな変更はない(はず)
個人的な意見としては、4.1は5.0のサブセットだと
思ってるので、さほど大きな問題はないと思う
488NAME IS NULL:2007/02/12(月) 22:57:59 ID:???
489NAME IS NULL:2007/02/13(火) 00:15:23 ID:???
そういえばどっかのMLで5.0リファレンスの翻訳があがってたんだけど、
誰か知りません?
490NAME IS NULL:2007/02/13(火) 17:32:56 ID:LCULlD3z
ここでいいのかわかりませんが、質問します。

現在レンタルサーバ上でMySQLを使用していますが、万が一のことを考え
MySQLのデータのバックアップをとりたいのですが、手動だと面倒なので自動で作業したいと思います。
となるとPerlかPHPでスクリプトを書いてcronで実行させる方法かと思うのですが、
PerlかPHPで自動バックアップできますか?
491NAME IS NULL:2007/02/13(火) 18:01:15 ID:???
cronで実行させるなら、mysqladminをシェルスクリプトから実行すればいいんじゃないだろうか
と思ふ、今日この頃
Perlでも出来ると思いますけど。
PHPはどうなんだろう。
492NAME IS NULL:2007/02/13(火) 18:04:54 ID:???
>>490
mysqldumpコマンドの一行をcrontab -eで登録するだけでも済みそうだが。

>>491
PHPのCLIがインストールされていれば可能とオモ
493490:2007/02/14(水) 01:54:43 ID:???
>>491-492
thx。
mysqldumpをcrontabに登録してうまくバックアップできました。
494NAME IS NULL:2007/02/14(水) 01:58:46 ID:l+llve9V
クライアントプログラムをC++で作ろうとしてますが、参考資料が少なくて困っています。
環境は、Mysql5.2 WindowsXP VC++.Net2003

わかり易い資料やサイトお知りの方、教えてください。
495NAME IS NULL:2007/02/14(水) 09:15:11 ID:???
PGなら付属のライブラリぐらい見ろよ。
496NAME IS NULL:2007/02/14(水) 10:36:55 ID:???
ラベルが低いですね
497NAME IS NULL:2007/02/15(木) 10:37:44 ID:???
>>494
ODBCって知ってる?
498NAME IS NULL:2007/02/16(金) 03:32:18 ID:0cQ1vOH8
すみません。。。おたずねしたいのですが。。。

MySQLの特定のフィールドの値(int)を初期値に戻すにはどうしたらよいのでしょうか?

初歩的な質問ですみません。。ご回答願います。
499NAME IS NULL:2007/02/16(金) 04:41:45 ID:???
初期値がいくつか知らないが
UPDATE table SET 特定のフィールド=初期値 WHERE 条件;
という事ではないのか?
500NAME IS NULL:2007/02/16(金) 10:54:56 ID:???
オートインクリを再番したいとか変な目的の悪寒。
もう一つフィールド作ってそっちで再番したら?
501NAME IS NULL:2007/02/16(金) 14:46:27 ID:???

以下のように、
投稿時間(`time`)が新しいもの2つから投稿した機種(`kishu`)をチェックして2重・多重投稿を規制したいのですがこれだとうまく取れていないのです。
どのようにしたらいいでしょうか?

SELECT COUNT(*) as `cnt` FROM `hoge` WHERE `kishu`='Opera' ORDER BY `time` DESC LIMIT 0,2
502NAME IS NULL:2007/02/16(金) 15:34:50 ID:llkGDDSe
すみません、しつもんです。
mysqlをずいぶん前にインストールして、ID,Passwordを忘れてしまいました
どうやって確認したら良いんでしょう?
503NAME IS NULL:2007/02/16(金) 18:10:03 ID:???
>>502
mysql にある user.* を test などにコピーして select したらダメっすか?
504NAME IS NULL:2007/02/16(金) 23:03:19 ID:0cQ1vOH8
>>498です。

レス遅くなってすみません。
>>499さん
ご回答ありがとうございます。
ヒントになったのですが・・・やっぱりわかりません。。。

'point'というフィールドを作ってありまして、その'point'の値によって
ランキングにしているんです。つまり今回、そのランキングをリセットするために
全レコードの'point'フィールドの値を初期値[1]に戻したいのです。

全レコードの一つのフィールドの値を初期値に戻す、MySQLコマンドがわかりません。。
ちなみにphpMyAdminで構築しています。

大変申し訳ないのですが、ご教授頂けたら幸いです。


>>500さん
オートインクリではないです。


505NAME IS NULL:2007/02/16(金) 23:21:14 ID:0cQ1vOH8
504です。

がんがったら普通にできました^^
>>499さんがおっしゃったとおりでしたね・・・。ありがとうございました。

こんな感じ↓
UPDATE sample_table SET point = 1;

ありがとうございました。
506NAME IS NULL:2007/02/17(土) 10:04:15 ID:???
もう一回再インストールすれば良いじゃん。
今度は忘れないように手にマジックで書いとけ。
507NAME IS NULL:2007/02/17(土) 10:41:44 ID:???
泣けるぜw
508NAME IS NULL:2007/02/18(日) 03:13:09 ID:???
漏れはIDとpassをDBに入れて管理してるよ。安全だし。
509NAME IS NULL:2007/02/18(日) 07:25:59 ID:???
何も知らない初心者です。
本当に申し訳ないのですが、皆様に一つお伺いしたい事があります。
サーバーに重要なのは回線速度とPCスペックどちらでしょうか?
これは現状の日本国内で個人がサーバーを立てているという前提なのですが、
もしよろしければ教えて頂けないでしょうか?
510NAME IS NULL:2007/02/18(日) 08:41:46 ID:???
>>509 両方
511NAME IS NULL:2007/02/18(日) 10:21:19 ID:???
↑そりゃそうだ w
512NAME IS NULL:2007/02/18(日) 11:34:26 ID:???
>>509
管理者の能力
513NAME IS NULL:2007/02/18(日) 11:39:24 ID:???
回線速度は100Mbps有ればまあ十分。
あとは利用者数規模に応じてCPUパワーとかシステムスループットが重要。
514NAME IS NULL:2007/02/18(日) 12:49:23 ID:???
システムの規模によって
・繋がっていてサーバが動いていれば平気
から
・2ch並のアクセスを裁けるほどの回線とサーバ
まで色々だろう。
515NAME IS NULL:2007/02/18(日) 15:22:08 ID:ADGk7MkI
すみません、何もわからない初心者です
PHPとmySQLを勉強したいんですが最適というかおすすめの
mySQLの本ないですか 
これが良かったよというものを教えてください 宜しくお願いします
516NAME IS NULL:2007/02/18(日) 15:53:26 ID:???
>>515

MySQL入門以前 (単行本)
http://www.amazon.co.jp/dp/4839916578/

速効!図解プログラミングPHP + MySQL―Windows/Linux PHP5対応 (単行本)
http://www.amazon.co.jp/dp/4839914397/
517NAME IS NULL:2007/02/18(日) 16:24:48 ID:ADGk7MkI
>>516
ありがとうございました 入門以前の方を買いました
バリバリ勉強します!
518NAME IS NULL:2007/02/18(日) 18:49:08 ID:???
>>513
ありがとうございました!
人と回線速度とサーバーPCの能力どっちが大事かという話しになりまして、
私も両方大事なのは分かるのですが、
どちらかといえば光で100MbpsしかでないからサーバーPCの性能の方が大事なんじゃないかと思いまして
プロの皆様はどちらを重視するのかと質問させて頂きました^^;
回答ありがとうございます。
519NAME IS NULL:2007/02/18(日) 21:27:24 ID:???

在日=竹石圭佑らしいが、熊本の済々黌の弓削達也って奴も朝鮮人だろ
在日って顔が日本人とは全然違うもんな
520NAME IS NULL:2007/02/19(月) 14:47:12 ID:zs6D1flz
どうしても解決できませんでしたので、もし、解決策をご存じの方が
いらっしゃいましたらご教授願います。

MySQL 4.0.27のcharacter_set ujisで作成されたデータをMySQL 4.1.22の
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
で設定されているデータベースにphpMyAdminのインポート/エクスポートを
使ってデータ移行をしようとしているのですが、どうしても上手くいきません。

インポートした時にテーブルの文字コードを設定する命令文を入れたりしたのですが、
phpMyAdmin上では文字化けせずに表示されるようになったものの、
プログラム上では「?????????」という文字列が出てしまい、使えない状態となっています。

エクスポートするサーバもインポートするサーバもレンタルサーバですので、
MySQLの設定を変える事ができません。

phpMyAdmin上からできる範囲の設定で、文字化けせずに
インポート/エクスポートできる方法はありませんでしょうか。
521NAME IS NULL:2007/02/19(月) 15:28:59 ID:???
なんでutf8に統一して、自前でutf8に変換してちゃんと文字化けのチェックしたデータを使わないの?
仕事でそんな事遣ってたら首だよ。


1Gbpsが必要で、システムどうしようとか悩んでたらアフォだと思う。
絶対トラフィック捌ききれない(w
522NAME IS NULL:2007/02/19(月) 15:48:17 ID:???
サーバレンタルなら文字コード指定してコンパイルやっちゃえばいいし
ホスティングサービスならサポートに文字コード統一しろと言えばいい。

さすがに文字コードばらばらっていうからには後者は無いか・・・。
523520:2007/02/19(月) 16:07:16 ID:zs6D1flz
> 522

返答ありがとうございます。
ホスティングなので、せめてサーバとクライアントの文字コードを
統一するように苦情を出したところ、既に提供済みのサーバのため、
他ユーザに影響が出るから今からの設定変更は難しい、との返答でした。

そのため、自身で何とかできる事であればと思いまして…。
524NAME IS NULL:2007/02/19(月) 20:16:43 ID:???
>>523
文字化けするプログラムが何かは知らないけど、
それの文字コードがujisのままとかそんなんじゃないの?

プログラム内でクエリー投げてDBからの取得をujisにするか、
プログラムでの文字コードをutf8にすればいけるような気がするんだけど。
525NAME IS NULL:2007/02/19(月) 20:27:20 ID:???
ホスティングサービス 別の所にしろ!!!
526NAME IS NULL:2007/02/19(月) 20:33:07 ID:AYXkt4B8
MYSQL5.0 (Windows XP)で
SELECT LENGTH(COLUMN_NAME) FROM TABLE_NAME
を実行すると、
データが「あいう」で9と返されます。
DBはUNICODE(UTF-8)で作っているのですが、
UTF-8で2バイト文字だと思うので、
この場合6と返却されることを予想していたのですが、違うのでしょうか?

このLENGTHは文字のバイト数を返却する仕様だと思っていたので、
この返却値の意味が分からないです。宜しくお願いします。
527NAME IS NULL:2007/02/19(月) 21:56:56 ID:???
UTF-8仕様として日本語は3バイトだろ。
つまりその動作は仕様通り、としか言いようがない。
528NAME IS NULL:2007/02/19(月) 23:37:03 ID:H41M0K3o
>>526
関係ないかもしれないが、文字数を取得する関数ならcharacter_length()というのがある。
length()ならば527さんの言うとおり、UTF-8は日本語は3バイトなので
仕様どおりとしかいいようがない。
529NAME IS NULL:2007/02/20(火) 00:10:49 ID:???
MySQLのスケーラビリティを向上させるパッチを誰か作ってよ。
他力本願だけど。
530NAME IS NULL:2007/02/20(火) 00:58:04 ID:PUidjZRf
>>527-528
レス、ありがとうございました。
普段javaでやっているとUnicode値は2バイトで処理しているので、
ずっと2バイトだと信じていたのですが、違うんですね。結構ショックです。
ただ、character_length()関数というのを初めてしりましたが便利ですね。
ありがとうございました。
531NAME IS NULL:2007/02/20(火) 01:40:13 ID:???
速い鯖買うなり、オラクルRACにどうぞ。
ヲレミドルウェアでうまくDB分ける設計でも良いし。

業者変えたほうが良いね。
同じ料金払ってるのに、他のお客のほうが大事ってことでしょ。
532NAME IS NULL:2007/02/20(火) 09:27:34 ID:???
皆さんプロの方もいると思いますけど、プライベートで趣味で作ってるような
サイトで、MySQLどんな風に使ってるんですか? 掲示板?
一番大きな規模だとどんなことしてるのかなぁと。。

イマイチ使い方というか効用がわからないんですよねー。
533NAME IS NULL:2007/02/20(火) 16:15:59 ID:???
>>532
ブログとアクセスログ
ファイルベースより開発が楽という理由でMySqL使ってる。
534NAME IS NULL:2007/02/20(火) 19:15:20 ID:???
>>532
ご回答ありがとうございました。なるほどー。
よく、大規模サイトのDBにはやはりオラクルがいいと聞きますが、
たとえばhttp://www.athome.co.jp/みたいな賃貸物件検索サイトの
規模になると難しいんでしょうか?
67万件登録で、一件あたり文字情報1000バイトだとすると、、
単純に容量の問題じゃなくて効率的な設計が難しいとかあるんですかねー
535NAME IS NULL:2007/02/20(火) 19:32:02 ID:???
>>534
オレのサイトは全体で8.1GB、1テーブルで最高2.1GB(1370万件)あるが、
そのテーブルを直接検索すると時間が凄まじい。

ただ、そこは切り分けだと思う。
検索でよく使うものは、キャッシュ用のテーブルを別途用意するなどすれば、0.0x秒で返却可能になる。
67万件程度なら、テーブルの構成を考慮することで十分対応だと思う。
536NAME IS NULL:2007/02/20(火) 20:10:18 ID:???
>>534
DBの魅力はなによりファイルの壊れにくさにあるとおもう。
537NAME IS NULL:2007/02/20(火) 20:10:50 ID:???
>>535
1つのテーブルで2GB超えるって大丈夫なん?
確か、2GBで制限されていると思ったが。
自分はXP使っているが、もしかしてLinuxとかなら大丈夫なのか??
538NAME IS NULL:2007/02/20(火) 20:11:01 ID:???
>>535
2.1GBって、、ものすごい大容量ですねー!
個人サイトなんですか? なにかを独立して運営してるのかなぁって
印象ですが… マネージしてく上で、大失敗とか振り返ると反省点だった
こととかありますか?

そこまで突然やりくりするのはムリだとしても、少しずつ学習していこうと思います
539NAME IS NULL:2007/02/20(火) 20:15:26 ID:???
>>536
なるほど! 確かに.logファイルとかってよく壊れるらしいですねー!
540NAME IS NULL:2007/02/20(火) 20:38:37 ID:???
mixi はMySQLって話を聞いた覚えが>大規模サイト
541NAME IS NULL:2007/02/20(火) 20:45:36 ID:???
>>538
サイトは個人サイトです。
私はSEで、DBは仕事で扱ってきたので、幸いなことに大きな失敗はないです。
小さな失敗は沢山あるけど、日次のバックアップで何回も救われた。
やはり、毎日のバックアップは大切。大切なデータ(テーブル)は数十分毎に差分バックアップ。

私のサイトも突然大きくなったわけじゃないので、少しつづ改善していけば良いと思う。
今でも、毎週何らかしらのテーブル構造を変更して改良を重ねているし。
542NAME IS NULL:2007/02/20(火) 22:27:46 ID:???
1テーブルじゃないと都合の悪いものもあるが、テーブルを分散させるテーブルを作り
1テーブルをあまりでかくしないように設計すれば、かなりスケーラビリティが上がる。
543NAME IS NULL:2007/02/20(火) 23:29:55 ID:???
別に2GB程度は大規模でもなんでもないと思うが・・・。

いまどきだと200GB〜500GBが中規模で
1TB超えだすと大規模くらいじゃねーかなぁ。

そして大規模な検索エンジンのgoogleはOracle使ってるわけじゃないし。

Oracle使うケースは金で安心を買って責任の落とし所が必要な
企業がよく導入しているのが多い。

実効性能は製品がどーこーよりもDBエンジニアの技量がほとんど。
544NAME IS NULL:2007/02/20(火) 23:36:00 ID:???
そうなんですか
自分は住所録を作り始めたようなレベルでmysql使う必要すらないもの
なんですけど、2GBとかのデータ?になるサイトってたとえばどんなものなんですかね?
たとえばこの板のdb容量?ってどれくらいなのかなー
そんなたくさんのデータを入力する手間というか、それだけ人に利用される
コンテンツを作るってスゴイですね
545NAME IS NULL:2007/02/20(火) 23:53:54 ID:???
InnoDBを使うと直ぐにサイズがでかくなるじゃん。
オレの奴も5GBぐらいあるけどgzip2で圧縮すると200MBぐらいになる。w
中スカスカかよ。
546NAME IS NULL:2007/02/21(水) 00:10:39 ID:???
なんか皆さんの意見聞いてるとやらなきゃいけないことたくさんですね
>>541を見ると、定期的にバックアッププログラムを実行して、不具合が発生したときに
その直前のデータをすぐ見つけて復旧しなきゃいけないし、
>>542を見ると、たとえば不動産サイトなら、東京の物件探すのにわざわざ
北海道のリストを見なくて良いように県別・エリア別にテーブル分けなきゃいけないし、
>>545の圧縮も自動化してダウンロードも自動化したほうが良いですよね?

そういう最低限のテクニックをまとめてるような本ってないですか?
そもそもリナックスマシン買わなきゃダメか 
547NAME IS NULL:2007/02/21(水) 00:25:51 ID:???
別に趣味のプログラミングを否定するわけじゃないし
MySQLを否定するわけじゃないんだが、
個人が使うレベルなら掲示板、ブログで、よく頑張って
通信販売くらいだろうけど、別にPHPとかでも
できるから、目的と手段を履き違えて無理にMySQL
使うことないと思うが。

今はVMwareとかあるからLinuxを買うことも無いとオモ。
548NAME IS NULL:2007/02/21(水) 00:36:35 ID:???
>北海道のリストを見なくて良いように県別・エリア別にテーブル分けなきゃいけないし、

そおいや、DB2などの商用だとこの辺りは自動的に分割してくれる
機能があるから、ユーザーというか開発者があんましいらん苦労を
しなくてすむのはあるな。
549NAME IS NULL:2007/02/21(水) 01:54:47 ID:???
>>546
>北海道のリストを見なくて良いように県別・エリア別に
通常はんなことないですよ。(あのDBがどうかは別として)
物件に都道府県別の番号を振ってindexを張り、
WHERE の先頭で 県番号で絞れば、ちょっ速でしょ。

冗長にテーブルを作るってのはよっぽどのケースで、
普通は別解があるはずですよ。
550NAME IS NULL:2007/02/21(水) 02:29:48 ID:???
いろいろ重要な意見ありがとうございます。
そういう、運営や長期的なメンテナンスに効率的な本って、↓で正解でしょうか?
http://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-MySQL-%E6%9D%BE%E4%BF%A1-%E5%98%89%E7%AF%84/dp/4798111139/sr=1-4/qid=1171991054/ref=sr_1_4/249-7445500-4415512?ie=UTF8&s=books
現場で使える MySQL (単行本)

プログラムの具体例はもちろんですが、mySQLの開発の上で留意すべき点を
要約してる本がいいんですが。。
ともかくありがとうございました
551NAME IS NULL:2007/02/21(水) 02:34:27 ID:???
DB2が都道府県を理解できる訳ないよ。信者の妄想凄いね(w
AS400廚とか、マジゴミだ。インターネット対応能力皆無だし、ネットの設定すらできない(w

dbファイルって簡単に壊れるよ。OSにしてみればファイルの一つに過ぎないし。
ハードディスクが壊れるのもよく有るデータ失う原因の一つ。
バックアップはしつこいぐらいに取っておくのは業務データ扱う場合の鉄則。

ここは金がなくて無料のMySQL使ってる香具師の巣窟だから、オラクル使ってる香具師はほとんど居ないだろうね。
金が絡む業務の場合には、データが間違ってましたなんて言い訳は顧客や取引先に通用しない。
グーグルやミクシは所詮無料だ。金は絡んでない。
極端な話、MySQLに致命的な欠陥が見つかって、業務データの信頼性が著しく損なわれたときに利害者にどう説明するのってこと。
だれがMySQLの問題の責任を取るのか。責任を持って修正するのか、正しく動く事を保証するのかって話。
オラクルならMySQLよりもハード込みでシステム全体まで面倒見れるくらいサポート体勢がしっかりしてるし、エンジニアも遥かに多いから代替も効く。
552NAME IS NULL:2007/02/21(水) 02:51:07 ID:???
>>551
致命的な欠陥が見つかったなら、有償オラだろうが無償MySQLだろうが
利害者には「欠陥があった」という事実でしかないんじゃないかい。

「オラオラを使っておりました」で、利害者が「じゃしょうがないな」と
納得してくれるのかい? 「んなの知ったこっちゃねーよ」だろ?


で、安定バージョンでそんな不具合聞いたことねーし、無いこと言われてもなぁ。
553NAME IS NULL:2007/02/21(水) 03:07:14 ID:???
>>552
そんなにOracleの欠陥が見つけたければ、MySQLを忘れて己の大望だけを見つめよ。
そうすれば、Oracleの姿もはっきりとその目に映ろうぞ。
Oracleの欠陥が存分に見えたとき、又、このスレに現れよ。
554552:2007/02/21(水) 03:21:01 ID:???
>>553
誰もそんな事言ってねーんだけどw
555NAME IS NULL:2007/02/21(水) 06:43:21 ID:???
>>551
とりあえず、このアフォがDB2もOracleもMySQLと言うか
DBすら使ったことなくて業務したことないのも明らかだな。

妄想厨は死んだほうがマシじゃないか?
556NAME IS NULL:2007/02/21(水) 10:43:28 ID:???
>>511は外気地
557511:2007/02/21(水) 20:25:41 ID:???

ウワァァァァァァン!!! ヽ(`Д´)ノ
558NAME IS NULL:2007/02/21(水) 21:12:13 ID:???
データディレクトリに
mysql-bin.(serial No.)
てファイルがたくさんたまってまつけど、
これって、のこしとかないとダメでつか?
559NAME IS NULL:2007/02/21(水) 23:57:27 ID:???
>>558
それって差分ログファイルじゃなかったっけ?
うろ覚えですが
560NAME IS NULL:2007/02/22(木) 01:19:50 ID:???
教えてください。(MySQL 5.0)

character_set_client | ujis |
character_set_connection | ujis |
character_set_database | ujis |
character_set_filesystem | binary |
character_set_results | ujis |
character_set_server | utf8 |
character_set_system | utf8 |
character_sets_dir | /usr/local/share/mysql/charsets/ |

の場合、クライアント mysql (ujis) <-> サーバ mysqld (utf8) <-> DB (ujis)
といった感じで、順にエンコードされて処理、表示されるのでしょうか?
その場合、DBには ujis, utf8 のものが存在するとして、
クライアント、サーバともに、utf8 に設定したほうがよいでしょうか

それと、character_set_filesystem, character_set_system は
どこの文字セットとして影響するのでしょうか

質問ばかりで恐縮ですが、よろしくお願いします
561NAME IS NULL:2007/02/22(木) 01:33:34 ID:???
562560:2007/02/22(木) 01:55:58 ID:???
>>561
ありがとうございます。>>3を見落としてました、すみません。

結構奥が深いんですね・・
クライアント、サーバ、DB をすべて UTF-8 にしておけば、ほぼ問題なさそうだけど、
DB だけ ujis の場合、サーバ側が自動変換出来きれない可能性がある、と考えればいいのかな?

とりあえず、何度も読んでみます。
563NAME IS NULL:2007/02/22(木) 16:58:30 ID:jmRMHBmc
DBをある条件で検索して、
ヒットした結果からランダムで3つを選んで表示する。
というのには、どういった処理をすると良いでしょうか?

使えそうな関数を書いて頂くだけでも助かります。
564NAME IS NULL:2007/02/22(木) 17:04:54 ID:???
... ORDER BY RAND() LIMIT 3
でたぶんいけるんじゃないかい
565563:2007/02/22(木) 17:17:39 ID:jmRMHBmc
>>564
もっとずっと複雑になるかと思っていたのですが、
こんなに単純で美しい方法があるなんて・・・勉強不足でした。
有難う御座いました。
566NAME IS NULL:2007/02/22(木) 17:16:35 ID:???
name, value
A, 1
B, 2
D, 2
D, 1
A, 3
B, 5
C, 2
みたいなテーブルがあったとき
重複を排除したnameと、同一nameの中で最大のvalueの一覧を
SQL文いっぱつで出すにはどうしたらいいかな

A,3
B,5
C,2
D,2
って出て欲しい
567NAME IS NULL:2007/02/22(木) 17:30:48 ID:???
status で確認すると、ページャが lv になっているのですが、
/P lv しないと機能が反映されないのはなぜですか?
568501:2007/02/22(木) 17:51:11 ID:???
お願いします
569NAME IS NULL:2007/02/22(木) 19:54:08 ID:???
>>566
そんなのはSQLの基本のき なのでちゃんと勉強しましょう。一発で出ますよ。
570NAME IS NULL:2007/02/22(木) 22:20:39 ID:NUoB16Y8
MySQLを3.27から5.0にしました。

フィールドに「id」と「pass」があるとして
3.27の場合は
INSERT INTO test SET id='hogehoge'
とすると、idに「hogehoge」が入るのですが

5.0の場合は
INSERT INTO test SET id='hogehoge'
とすると
Field 'pass' doesn't have a default value
というエラーが出てしまいます。
どのような仕様変更があったのでしょうか?
571NAME IS NULL:2007/02/22(木) 22:23:07 ID:???
>>569
確かにこれは一発だった。本題は

name, value, text
A, 1, hoge
B, 2, hogehoge
D, 2, hogehogehoge
D, 1, hagehage
A, 3, hagehga
B, 5, piyopiyo
C, 2, fugafuga
のように、さらにほかにカラムがいくつもあるときに

A, 3, hagehga
B, 5, piyopiyo
C, 2, fugafuga
D, 2, hogehogehoge

と出すのに、格好いい方法が思いつかなかった。
572NAME IS NULL:2007/02/23(金) 00:17:32 ID:???
>>570
むしろ今までエラーが出なかったのが不思議だ・・・。
多分移行したときに列の設定ちゃんとしなかっただけだと思うけど。

仕様変更以前の問題、SQL文とエラー文よく読めば納得できるはず。
573NAME IS NULL:2007/02/23(金) 01:04:13 ID:???
>>570
初めてこのスレで自分より出来ない人みつけたw
574NAME IS NULL:2007/02/23(金) 03:27:00 ID:???
>>570
MySQL5は使った事が無いのだが、話に聞くとSQLモードを指定して、
挿入する値の完全性チェックのレベルが変えられるみたいじゃん。
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
ここの一番下を見ると、MySQL3/4と同じにするには、
NO_FIELD_OPTIONS, HIGH_NOT_PRECEDENCEを指定してやれば良い
んでないの?
TRADITIONALモードにすると、>>570のようになるみたいだな。
not nullのフィールドを自動補完してくれない。(たぶん、汗)
575574:2007/02/23(金) 03:52:34 ID:???
>>570
ああ、そのものズバリの奴が有ったよ。
http://question.excite.co.jp/qa2721792.html

sql-modeを未指定にしてやれば良いみたい。
回答No,4の言ってる
> MySQLは、Default未設定でも、自動割当が行われるようなので、
がMySQL3と4の標準的な挙動だよな。
576NAME IS NULL:2007/02/23(金) 08:30:03 ID:???
そういう自動補間みたいなのがあるから
初心者が単純なエラーさえ見つけにくくなるんだよなぁ。
テーブル作成時に型と同じようにNULLやdefaultの定義くらいは設定するべき。
577NAME IS NULL:2007/02/23(金) 10:05:41 ID:???
そんな機能あるのか

へぇー


ユーザーアカウントによって書き込むカラムに制限を加える場合は、テーブル毎分離しろって事か
578NAME IS NULL:2007/02/23(金) 11:29:19 ID:???
おもいっきりSQLの範疇なのに、なんでMySQLスレで訊いてるの?
頭悪い?
579NAME IS NULL:2007/02/23(金) 14:43:47 ID:YUJryjMq
すみません、質問です
住所録を作って、名前とか電話番号とか登録したんですが、
ブラウザで登録内容を確認するとちゃんと表示されるのに、
コマンドプロンプト>mysqlウインドウ>select * で確認すると日本語部分が
化けています。 どうしたら良いでしょう?
mySQL4 apache php5(EUC-JP) です
580NAME IS NULL:2007/02/23(金) 15:35:15 ID:???
>>579
select前に 
SET NAMES sjis;
でどう?
581NAME IS NULL:2007/02/23(金) 15:38:29 ID:AXGC2gz7
以下のデータあるときに、各項目ごとに最初に購入した日と個数を表示したいのですが、
どのような select文 になるのでしょうか?

-------------------------------
  購入日   個数
林檎 2004-02-01 21 <-分かりやすく 2/1 だから 21個
林檎 2004-01-01 11

蜜柑 2004-02-02 22
蜜柑 2004-01-02 12

葡萄 2004-02-03 23
葡萄 2004-01-03 13

create table test(item varchar(255), date date, num int) charset=utf8 type=InnoDB;
insert into test(item, date, num) values
 ("林檎", "2004-02-01", 21), ("林檎", "2004-01-01", 11),
 ("蜜柑", "2004-02-02", 22), ("蜜柑", "2004-01-02", 12),
 ("葡萄", "2004-02-03", 23), ("葡萄", "2004-01-03", 13);
-------------------------------

一応以下のselect文で希望とする値は取れるのですが、なんか効率悪そうで...。
select * from (select * from test order by date) a group by item;
582NAME IS NULL:2007/02/23(金) 15:53:42 ID:???
>>579
個人情報保護ができてそれで良いではないか(笑)
583NAME IS NULL:2007/02/23(金) 16:59:06 ID:???
not nullに指定しているカラムに何も指定してないはずなのですが、
sqlが実行されます。
これは自動的にemptyが挿入されているのでしょうか?
584NAME IS NULL:2007/02/23(金) 18:37:34 ID:???
TOPコマンドでサーバの状態を定期的にチェックしてるのですが、
mysqldのメモリ使用量が毎日少しずつ増えてます(現在27M)

http://dev.mysql.com/doc/refman/4.1/ja/memory-use.html
このページの最下部を見るとメモリ使用量の表示が大きくても問題
ないよう思えるのですが(勘違いしてるのかもしれませんが)
放置していて良いのでしょうか?
585NAME IS NULL:2007/02/23(金) 18:47:39 ID:???
>>584
単にkeyキャッシュがたまっていく状態だと思われます。
586NAME IS NULL:2007/02/23(金) 21:26:07 ID:???
>>581
おいらも多分そんな感じのクエリにすると思う。
587NAME IS NULL:2007/02/24(土) 01:18:08 ID:???
eucじゃなくて全部utfにするといいよ。
MySQLはutfで格納してるから、全部utfにすれば変換することが一切無く文字化けがなくなる。
588NAME IS NULL:2007/02/24(土) 01:57:00 ID:???
table hoge
seq type
1  a
1  b
2  b
3  a
3  a
4  a

MySQLと絡めた質問なのですが、上のようなデータが格納されていたとき、
GROUPした後のseqの数(上の場合だと4)を取得したいのですが、どのようにすればいいでしょうか?
SELECT COUNT(*) FROM `hoge` WHERE `type`='a' GROUP BY `seq`
これではできませんでした。
このクエリをcountした数を現在は取得しています
589NAME IS NULL:2007/02/24(土) 03:29:08 ID:???
定期的にこの電波が発信されるな。
> MySQLはutfで格納してるから、
590tukutuku:2007/02/24(土) 04:22:20 ID:itDHGqYS
教えてください。
zencartを使おうとしてるんですが、Mysql4.1系だとどうしても文字化けが解消できません。
4,0は公式サイトでダウンロードできなくなってるんですが、どこか4.0をダウンロードできるところ知ってる人いませんか?
また、4.1系での文字化け対策を簡単に教えてくださる方いませんか?
591NAME IS NULL:2007/02/24(土) 06:42:44 ID:???
>>590
基本的にはもうないと思うよ。
「4.0の配布終了で困ったけど、社内にたまたまセットアップファイルがあって助かった」
というようなブログか何かを読んだことがある。

参考情報としては「Mysql入門以前」にWINとMacの4.0.20は付属してた。
592NAME IS NULL:2007/02/24(土) 07:02:25 ID:???
>>588
DISTINCTだっけ?
593NAME IS NULL:2007/02/24(土) 08:22:43 ID:???
え! 4.0ってもうないの。 うちバリバリ4.0だっせ。こえー。
594NAME IS NULL:2007/02/24(土) 09:02:36 ID:???
595NAME IS NULL:2007/02/24(土) 11:11:11 ID:???
MySQL5.0でDBを構築しているのですが、ログ系のデータが増殖しすぎて、
一つのTableが2GBを超えています。仕様上は2TBまでOKらしいですが、
検索する際にINDEXを付与しても30秒以上かかって、実用に耐えないのですが、
このような場合って、どう再構築した方がベターですか?

ログ系なので、時間軸に従ってLOG2007_01,LOG2007_02とやるのも手だと思うのですが、
同じ構造を持ったテーブルが何個も増えるのは設計上どうかなぁと思いまして、悩んでいます。
宜しくお願いします。
596NAME IS NULL:2007/02/24(土) 16:31:48 ID:???
>>595
本当にindex効いてたらそんなにかからんと思うよ。
本当にindexは効いているのかい?

よくある失敗は、日付を関数で切り出して比較してしまってるケースとかね。
597NAME IS NULL:2007/02/24(土) 17:14:39 ID:???
>>596
説明が不足していてすみません。
これINDEXはつけているものの、SQLの中にLIKEで検索せざるを
得ない処理がありますので、遅くなっています。
宜しくお願いします。
598NAME IS NULL:2007/02/24(土) 18:56:48 ID:???
>>597
ログの利用割合がわからんのでなんとも胃炎けど、
一般的には利用頻度で2分割が簡単でしょうね。

5年前ログと今月ログの利用頻度が同じわけありませんからね。
適当にボーダー引いて移してく。
599588:2007/02/24(土) 19:13:55 ID:???
>>592さん
SELECT DISTINCT COUNT(*) FROM `hoge` WHERE `type`='a' GROUP BY `seq`
で試してみましたができませんでした…
引き続きお願いいたします
600NAME IS NULL:2007/02/24(土) 20:06:52 ID:???
>>599
このSQLってMySQL以外で使えるのかな。
SELECT COUNT(DISTINCT `seq`) FROM `hoge` WHERE `type`='a';
601NAME IS NULL:2007/02/24(土) 21:04:03 ID:???
全文検索エンジンSenna 1.0.0 リリース
http://slashdot.jp/developers/article.pl?sid=07/02/23/080215
602NAME IS NULL:2007/02/25(日) 15:57:57 ID:???
mysqlってdbファイルにはjisで記録?
突っ込んだものそのままかな?
603NAME IS NULL:2007/02/25(日) 16:20:28 ID:???
>>602
JISで突っ込めばJIS
UTF8で突っ込めばUTF8
変換しろといえば変換もしてやらんこともない
604NAME IS NULL:2007/02/26(月) 11:40:29 ID:???
>>588
select * from (select * from hoge order by seq desc) a group by a.type;
605NAME IS NULL:2007/02/26(月) 16:24:03 ID:???
phpmyadminで
MySQLのあるデータベースの文字(URL)を一括で置換したいのですが
どういったSQL文を実行すればよいのでしょうか?
エクスポートしていくつかのテキストエディタで変更しても
うまくいきませんでした。
phpMyAdmin - 2.8.2
MySQL - 4.0.27-standardです
Googleなどで検索してもいまいちわかりませんでした。
よろしければご教授下さい。よろしくお願いします。
606NAME IS NULL:2007/02/26(月) 17:07:23 ID:???
>>605
具体的な説明がないとなんとも答えられないよ。
607NAME IS NULL:2007/02/26(月) 17:34:57 ID:???
下のXOOPSの掲示板でXOOPSを他サーバーに移設する方法を
聞いてみたところphpmyadminで文字列の置換作業をすれば
できるのではないかというご指摘をいただいたのですが、
SQL文については答えられないということでしたので
こちらの掲示板に書き込んだ次第です。
http://xoopscube.jp/modules/xhnewbb/viewtopic.php?viewmode=thread&topic_id=4693&forum=5&post_id=20481#20481

XOOPSで作られたデータベースの全てのテーブル(データベース内の全てのデータ)にあるURLを
http://aaa.comhttp://abcde.netのように変更したいのですが
テキストエディタで置換作業を行ってもうまくいきません。
phpmyadmin上で置換をする場合はどうすればいいでしょうか?
説明不足な箇所があるかもしれませんがよろしくお願いします。
608NAME IS NULL:2007/02/26(月) 19:58:47 ID:???
またMySQLに関係無いし。
xoopsスレで訊け。

普通はテキストエディタで変換出来るけどね。
変換できないならスキル低い証だから、業者にでも頼んだら?
609NAME IS NULL:2007/02/26(月) 20:44:22 ID:???
xoosのスレでも色々と書き込みましたが、
テキストでの置換や文字コードの問題はクリアしているものと
思われますが、phpmyadminでインポートした段階に
置換するとどうしてもエラーが起きてしまうため
phpmyadmin内で解決できないかと自分は考えています。
今回サーバーの料金・性能に不満があったので
移設を開始してるのですがサイトの価値などからしても
業者に頼むことは非合理的なので
まったく考えていません。
SQLの命令(replace?)などである程度簡単に解決できる問題かと
思ったのですが見当外れなのでしょうか?
610NAME IS NULL:2007/02/26(月) 21:15:35 ID:???
>>609
エラー内容を書かないと回答はもらいにくいよ
ここに限らず質問するときの習慣にしたほうがいいと思う

で、テキストエディタで保存するときに文字コードが変わってる可能性はないですか?

ちなみに文字列関数のリファレンスはここにある
http://dev.mysql.com/doc/refman/4.1/ja/string-functions.html
611NAME IS NULL:2007/02/26(月) 21:51:59 ID:???
レンタルサーバーの期限が今月いっぱいなので
SQLの基礎習得やエラーの原因を特定している時間が
あまりなく、できれば置換の方法を教えていただきたいです。
文字のコードに関してはEUC-JP.UTF-8.S-JISを
文字コードを扱えるテキストエディタ数種類にて確認しましたが
置換することで全てのテーブルが読み込めなくなる訳ではないので
関係ないかと思います。
XOOPSのスレッドのリンクだけ張っても駄目ですね。
移転に関する内容を書くと、XOOPSの部分が深く関わってきて
ここで質問する必要性が薄れてきますので避けたかったのですが・・。

以下の教えてgoo
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1966499
にあるように、一行程度のコードでできないのでしょうか?
612NAME IS NULL:2007/02/26(月) 22:01:33 ID:???
>>611
step 1: sshでサーバに接続し mysqldump する
step 2: テキストエディタで対象項目を置換する
step 3: mysqlのコンソールで dumpデータを食わせる
step 4: コーヒーを飲む
613NAME IS NULL:2007/02/26(月) 22:08:13 ID:???
step 5: 思ったよりコーヒーが苦かったので砂糖を足す
614NAME IS NULL:2007/02/26(月) 22:10:42 ID:AeBLESr7
>>611を読んでて思ったんだけどさ・・・・
WHEREで全テーブルの全部の列を指定するのって、どうすりゃ出来るの?
どこにあるか知らないけど、TABLE情報を持ってるテーブルと列情報を持ってるテーブルを連結させるの????
いくらなんでもSHOWコマンドとは連結できないよね??
615NAME IS NULL:2007/02/26(月) 22:45:16 ID:???
テキスト置換する方法で今できました。
xoopsモジュールで起きた問題も少し前に何もいじってないのですが
解決されたようです。原因が何かはっきりわかりません。
色々とお騒がせいたしました。ありがとうございます。
616NAME IS NULL:2007/02/26(月) 23:39:11 ID:???
出来たじゃなぁい!!!
617NAME IS NULL:2007/02/27(火) 11:00:02 ID:???
糞サイトなら諦めれば良かったのに。
618NAME IS NULL:2007/03/01(木) 19:27:40 ID:???
レスが伸びないのでここって書けるのかテスト
619NAME IS NULL:2007/03/02(金) 06:38:53 ID:???
Windowsのタスクマネージャで見て、
mysqldが184kしかメモリ消費してない。
すげーぞMySQL!!
620NAME IS NULL:2007/03/02(金) 11:09:29 ID:???
>>619
my.cnf (windowsなら my.iniだっけな) のメモリコンフィグレーションや
アクセス状況にもよる。通常なるべくメモリを与えた方がパフォーマンス
あ上がる。
621NAME IS NULL:2007/03/02(金) 11:38:02 ID:???
>>619
それはメモリに乗っかっている量じゃね?
ページサイズは見た?
622NAME IS NULL:2007/03/02(金) 22:38:06 ID:???
>>621
見てない!
スマソ
623511:2007/03/03(土) 20:11:51 ID:???
Mysql 4.1.16
http://dev.mysql.com/doc/refman/4.1/ja/を見たんですけど
databaseをリネームする事って出来ないんですか?
624NAME IS NULL:2007/03/03(土) 20:12:25 ID:???
(^^;
625NAME IS NULL:2007/03/03(土) 20:58:24 ID:???
>>623 コマンドラインからのdatabase
renameは、4.1では出来ない。5.1.7から
ならできる。
626NAME IS NULL:2007/03/03(土) 21:05:13 ID:???
>>625
あ〜、そうですか〜。ありがとです。
627NAME IS NULL:2007/03/05(月) 14:56:41 ID:???
lamp環境のサーバーのmysqlに、別PCから接続できず困っています

php上のエラーは
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource

webのポート80には繋がるので、mysql内で何か設定が必要なのかなと思うのですが・・・
628NAME IS NULL:2007/03/05(月) 17:25:52 ID:???
>>627
>webのポート80には繋がるので、mysql内で何か設定が必要なのかなと思うのですが・・・

HTTPプロトコルで通信ができることと
データベースに接続できることとはまったく関連はないんだけど
629NAME IS NULL:2007/03/05(月) 18:03:53 ID:???
>>628
ありがとうございます

あんまり理解してないのですが・・・
TCP Wrapperの設定ファイルhosts.allowにhttpdに関する記述が無かったので
mysqldまでパケットは届いてるんじゃないかなと思ってそう書きました
630NAME IS NULL:2007/03/05(月) 18:32:54 ID:???
>>629
現象の切り分けをしましょう

PHPで接続させてみる前に、まずmysqlクライアント
(クライアントがWindowsならmysql.exeとか)
からサーバに接続できるか?
できないのならそのときのエラーメッセージを出してみてください
631NAME IS NULL:2007/03/05(月) 18:50:23 ID:???
>>630サン
書き方まずかったんですが、
サーバーはLAMP環境で、別のwindowsPC上のapache+PHPから接続しようとしてます
スクリプトをサーバー上に置くと接続でき、windowsPCからだと接続失敗します

MySQL Administratorで試したところしたのメッセージが表示されました。
#Could not connect to the specified instance.
#
#MySQL Error number 2013
#Lost connection to MySQL server during query.
#
#if you want to check the network connection, please lick the Ping button.
632NAME IS NULL:2007/03/05(月) 19:14:25 ID:NtgKB3dt
>>631
それでは log オプションをつけてmysqldを再起動してみたらどうだろう?
それでクライアントから接続させてみればログファイルに
何か書かれるから
633627:2007/03/05(月) 19:41:25 ID:???
linuxサーバー上からログインするとログに書き込まれたのですが、
windows上のMySQL Administratorから接続しようとすると、
>>631のエラーダイアログが表示されるんですが、ログには何も書き込まれませんでした

ここでmysqlの以前と判断していいのでしょうか・・・
634NAME IS NULL:2007/03/05(月) 19:42:43 ID:???
×ここでmysqlの以前と判断していいのでしょうか・・・
○ここでmysql以前の問題と判断していいのでしょうか・・・

派に食ってますね○凹
635NAME IS NULL:2007/03/05(月) 19:51:19 ID:???
>>633
サーバとクライアントのバージョンが一致してないのかなぁ?
MySQLのバージョンとPHPのバージョンを教えてください。
636NAME IS NULL:2007/03/05(月) 19:58:51 ID:???
mysql 4.0.20
php 4.3.11
turbolinux10

MySQL Administrator 5.0
php 5.1.16
windowsXP

だんだん申し訳無くなってきました・・・ご丁寧に本当にありがとうざいます
637NAME IS NULL:2007/03/05(月) 21:52:08 ID:???
mysql5を使っているのですが、
MyISAMテーブルはfkはれますか?
構文はinnoDBと同じでしょうか?
638NAME IS NULL:2007/03/06(火) 13:37:13 ID:???
>>636
っていうかさぁ、何でググらねえの?
ググルとTOPに↓がヒットするがこれじゃね。
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1121173
639NAME IS NULL:2007/03/06(火) 13:57:15 ID:???
プログラム作ったのですが、データベースに入れるときに
quoteで、エスケープするの忘れしまいました。
フィールド数、テーブル数が結構あって大変そうです。

mysql側で、
・特殊文字があったら、自動的にエスケープする
・特殊文字があったら、格納出来ないようにする
こういうことできるでしょうか?
640NAME IS NULL:2007/03/06(火) 19:34:50 ID:???
             ,.-─ ─-、─-、
           , イ)ィ -─ ──- 、ミヽ
           ノ /,.-‐'"´ `ヾj ii /  Λ
         ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
        ノ/,/ミ三ニヲ´        ゙、ノi!
       {V /ミ三二,イ ,  /,   ,\  Yソ
       レ'/三二彡イ  .:ィこラ   ;:こラ  j{
       V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
        Vニミ( 入 、      r  j  ,′
        ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
         ヽ ヽ     -''ニニ‐  /
             |  `、     ⌒  ,/
            |    >┻━┻'r‐'´
           ヽ_         |
              ヽ _ _ 」

        ググレカス[Gugurecus]
      ( 紀元前一世紀 〜 没年不明 )
641NAME IS NULL:2007/03/06(火) 22:47:54 ID:3TKP0ftQ
MySQL5でXREAを使っているのですが、
MySQL server has gone away
のエラーが不定期で出て困っています。
ヘルプによると、プログラムでクローズしたときに発生するらしいですが、
明示的にclose処理をしている箇所はありません。
XREA側の問題なのでしょうか?それともプログラムの問題でしょうか?
特定の状況で発生するわけでもなく、再現性もないのでこまっています。
642NAME IS NULL:2007/03/06(火) 23:27:34 ID:???
MySQL側のタイムアウトじゃね?
643NAME IS NULL:2007/03/06(火) 23:53:08 ID:???
>>641
私も以前このエラーにぶつかったことがあります。
そのときは発行するクエリの大きさがmax_allowed_packetより
大きかったのが原因でした。
644NAME IS NULL:2007/03/07(水) 00:06:28 ID:3TKP0ftQ
アドバイスありがとうございす。

>>642
ありがとうございます。
タイムアウトの件ですが、XREA側の設定をみると、「wait timeout 28,800」になっています。
ヘルプによると、以下のように書かれていますが、当サイトはどんなにアクセスが少ない時も
30分に1回は必ずアクセスがあるので、タイムアウトは考えられないような気がするのですが。
-------------------------------------
MySQL server has gone away エラーの最も一般的な原因は、サーバがタイムアウトして接続がクローズしたことです。
デフォルトでは、何も起きない状態が 8 時間続くと、サーバは接続をクローズします。
-------------------------------------
>>643
ありがとうございます。
XREAの設定をみると、「max allowed packet 8,387,584」となっているのですが、
この値って一回当たりのSQL文長の制限値ですよね。
こんなに長いSQL文は投げているコードはないので、
これもちがうかもしれません。もしかして、コネクション辺りのSQL文長の最大値?…ではないですよね。

う〜ん、なんでしょ?
645NAME IS NULL:2007/03/07(水) 02:46:49 ID:BzqWSHMY
>>644
初心者が無茶苦茶な使い方をするのを防ぐためにそうなってるんじゃないの?
646636:2007/03/07(水) 04:59:00 ID:???
>>639
ありがとうございます
お言葉ですがググってそのページを見た上で、今の話とは違うと思ってたんです・・・うう
サーバーはMySQL4.0だし、同サーバー上のphpからは繋げてますし・・・
と推定だけで話してもしょうがないので、明日会社で試して見ます
647NAME IS NULL:2007/03/07(水) 07:28:20 ID:???
>>646
my.cnfはどうなっとんかね?
bind-addressとかじゃねーの?
648NAME IS NULL:2007/03/07(水) 14:15:40 ID:???
PHPでカレンダー用のデータを取得する機能の付いた日記を作っています。
現在のテーブルは簡単に説明しますと

|記事No|投稿日時|内容|
|1|2007-03-07 12:30:40|ないよう1|
|2|2007-03-07 14:05:30|ないよう2|

と言う感じになっています。(同じ日にちの日記が書ける)

DATE部分をSUBSTR()で切り出しグループ化させて、LIMITを31にしています。
効率が悪いのかなぁ、とDATEとTIMEを別カラムに保存してDATEカラムをグループ化させる事を考えて見ました。
そうする場合は、日付順に検索する時ORDERを DATE, TIME と設定する必要があるなど
色々出てくるんですが、どちらの方が効率的になるでしょうか?

分かりくい説明で申し訳ないですが、ご意見聞かせてください。
649NAME IS NULL:2007/03/07(水) 14:25:44 ID:???
SUBSTR()ではなくて、SUBSTRING()でした。
SUBSTRING(date,1,10)と言う感じにグループで取っています。
650NAME IS NULL:2007/03/07(水) 15:14:38 ID:???
>>648
普通、group by date(date) じゃね。イタ違なネタだけど。
651NAME IS NULL:2007/03/07(水) 19:53:09 ID:???
>>648
日時は分けなくても大抵何とかなります。
問題点は、日時は切り貼りするとindexが効かなくなるので
必ずそのままでどうにかする事。 例えば今の仕様で1ヶ月取り
たければ、当月1日0時以上、翌月1日0時未満でいいわけで。

indexを効かせたまま切り分けも出来ますが、それなりのテクが必要です。
652NAME IS NULL:2007/03/07(水) 23:12:36 ID:???
日記をサボった日が出てこないんじゃない?
653NAME IS NULL:2007/03/08(木) 07:14:12 ID:???
>>652
outerでもいいけどPHPってことでどうにでもなるでしょ
654NAME IS NULL:2007/03/08(木) 08:23:44 ID:HdrqDvkV
すみません、文字コードセット設定の件で教えてください。

(概要)
 ・サーバ側の文字コードセットが、my.iniを変更しても、変わらない。

(環境)
 ・OS:Windows XP SP1
 ・MySQL Ver :5.0.33 for Win32 on ia32 (Source distribution)(XAMPP Ver2.3でインストール)

(背景/作業)
 1:サーバ&クライアント側の文字コードセットを、UTF8に設定しようとしてる。
 2:設定を行うため、my.iniのCharsetを変更し、WinMySQLAdminから、MySQLを再起動した。
 3:コマンドラインからMySQLクライアントを起動し、Variablesを確認したが、
   「character_set_server」は「latin1」のままだった。

(my.ini設定(文字コード設定で追加した箇所のみ抜粋))
------------------------------
[client]
default-character-set=utf8

[mysqld]
skip-character-set-client-handshake
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8
------------------------------

(確認結果)
+--------------------------+----------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\xampp\mysql\share\charsets\ |
+--------------------------+----------------------------------------------+

「character-set-server = utf8」を設定すれば問題ないだろう、って思ったのですが・・・。
実はちゃんと設定されてる?、と思い、ためしにレコードを追加したら、
日本語は、「????」と文字化けしてしまいます。。。

なにか、足りない設定等があるのでしょうか?。
同じ問題ではまった方、何かご存知の方、是非ご教授ください。
655NAME IS NULL:2007/03/08(木) 11:08:22 ID:???
>>654
~xampp/mysql/bin/my.cnfでやってみたらどうよ?
他の設定はちゃんと変えられてるのかな。my.iniで。
656NAME IS NULL:2007/03/08(木) 13:59:06 ID:???
>>654
まず character_set_database が latin1 じゃん。
それと、テーブル毎に文字コードを設定出来る訳だが、show table status
で、Collation を確認しる。
657648:2007/03/08(木) 14:18:29 ID:???
>>650-653
アドバイス有難う御座います。
DATEの存在をすっかり忘れいました、、年月日での際DATEグループ化
して、該当カラムにインデックスを張るようにしました。
年月から取得する際には、大量レコードで何度かテストして見た所
>>651で仰られている方法が早いようなのでこちらでやってみます。
658NAME IS NULL:2007/03/08(木) 14:19:16 ID:???
修正:年月日でグループ化する際DATEを使い
659NAME IS NULL:2007/03/09(金) 05:02:58 ID:T7WUPOQD
>655
>656
アドバイスありがとうございます。
クライアント側のみ変更できて、character_set_databaseも、変わらないんです。
で、色々試した結果、XAMPPを使わず、MySQL単独でインストールしたら正常に
変更できるようになりました。

とりあえず、これで行きます。
660NAME IS NULL:2007/03/09(金) 05:05:44 ID:???
ucs2に統一したほうが良いよ。utfでも同じだろうけど。
661NAME IS NULL:2007/03/09(金) 21:36:39 ID:???
へたれ質問ですまそだが、daemon と client を
4.1 --> 5.0 にアップするとき、 データベースの移行上
何かやらんといけないことあったっけ?単純に
.../mysql/data の中身に4.1 で使っていたファイル
をごそっと突っ込むのでは駄目なのか?

というのも、これ、やってみるとそもそも root認証でき
なくて、daemonに接続もできません。 

.../mysql/data/mysql のフォーマットが変わった、とかあり
ましたかね。4.0 -> 5.0 でなくて、4.1 --> 5.1 はトランスペアレント
だと思ったんだけど。x86_64 linux 上で、
mysql-standard-4.1.22-unknown-linux-gnu-x86_64-glibc23
とmysql-standard-5.0.27-linux-x86_64-glibc23 の間の話だす。
662NAME IS NULL:2007/03/09(金) 21:41:26 ID:???
hint: char code
663NAME IS NULL:2007/03/09(金) 22:52:02 ID:???
ODBC経由でMS-AccessからMySQL内のテーブルにリンクするにはどうすればいいのでしょう?
MySQL側での設定方法・箇所を教えて下さい。

【目的】
・既存のOracleやSQLServerをMySQLで代替する。
【テスト環境】
・クライアントPC(名前:MYPC、WindowsXPSP2)、MySQL Connector/ODBC v5、Access2002)
・サーバPC(Windows2000ProSP4、XAMMP1.5.5(Apache2.2.3、MySQL5,0.27、PHP5.2.0))
【現象】
Accessでテーブルのリンクをすると、以下のメッセージがAccessから出されます。

ODBC--呼び出しが失敗しました。

[MySQL][MyODBC 5.00.11][MySQL] 1130 Host 'MYPC' is not allowed to connect to this MySQL server(#1130)
664NAME IS NULL:2007/03/09(金) 22:56:56 ID:???
ODBCの設定しないと、ODBCで呼べないって理解できてる?
書籍でも買って勉強しな。正規ユーザならODBCのやり方が載ってるアクセスのマニュアルでも嫁。
665NAME IS NULL:2007/03/09(金) 23:05:41 ID:???
>>664
いや、友達からコピって貰ったんだマニュアル無いっす。
666NAME IS NULL:2007/03/09(金) 23:06:54 ID:???
>>664
クライアントPC側では、ODBCの接続設定はしました。
667>>663=>>666:2007/03/09(金) 23:09:14 ID:???
設定→コントロールパネル→管理ツール→データ ソース (ODBC)で設定しました。
668>>663=>>666:2007/03/09(金) 23:22:05 ID:???
>>664
クライアントPC(MYPC)からMySQLのポート3306にtelnetすると
 「 Host 'MYPC' is not allowed to connect to this MySQL server 」
と表示されることから、
MySQL側での外部ホストへの接続許可設定が必要になると考えています。
669663:2007/03/10(土) 00:55:50 ID:???
mysqlデータベースのuserテーブルに
host=MYPC、user=rootで行を追加するとできました。
なるほどね〜
670NAME IS NULL:2007/03/10(土) 01:15:26 ID:???
なるほどねーってかどんだけ馬鹿なんだ。
そのなるほどねーまで試してから書き込め。
671NAME IS NULL:2007/03/10(土) 01:20:06 ID:???
釣りに決まってんだろw
バ〜カ〜
672663:2007/03/10(土) 01:33:28 ID:???
試したよ。
MySQLはシンプルでいいな。
これでOracleと縁切りできるぜ
いやっほううううううううううう
673663:2007/03/10(土) 02:58:30 ID:???
>>664
よく読め。知らんくせにレスすんなカス

>>665
ダボ

>>670
クズ

>>671
氏ね
674NAME IS NULL:2007/03/10(土) 02:58:40 ID:???
以下の3つのクエリを1つにまとめたいのですが、どのようなSQL文になるでしょうか?

select `id`, `name` FROM `usr_tbl` WHERE `seq`=$1
select COUNT(*) FROM `in` WHERE `flg`=1 and `seq`=$1;
select COUNT(*) FROM `out` WHERE `flg`=1 and `seq`=$1;

条件としては
`in`, `out`ともに、COUNTが0の場合は0を返すこと
かなり難解だとは思いますが、お力お貸しくださいm(_ _)m
675674:2007/03/10(土) 03:10:13 ID:???
聞くだけというのもあれなので自分で考えたものを書きます!

SELECT count(`in`.`seq`), count(`out`.`seq`) as `out`, `usr_tbl`.`id`, `usr_tbl`.`name`
FROM `usr_tbl`, `in`, `out`
WHERE `usr_tbl`.`seq`=$1 and `usr_tbl`.`seq`=`in`.`seq`=`out`.`seq` and `in`.`flg`=1 and `out`.`flg`=1

エラーになります…(;ω;)
676NAME IS NULL:2007/03/10(土) 04:09:51 ID:???
あした起きたらみる
677674:2007/03/10(土) 04:23:04 ID:???
>>676さん
おきたらお願いちます(つ・ω・⊂)
私は寝ないで待ってます♪(+ω+)z
678NAME IS NULL:2007/03/10(土) 04:31:07 ID:???
>>675
count の中のをif文判定して1or0を返せば、たぶんカウントされる。
usr_tbl`.`id`をgroup byだ、たぶんね。
679661:2007/03/10(土) 21:07:59 ID:???
create_view_priv のエントリを作るために
4.1 --> 5.0 で mysql.user の構造が拡張
されてっからuser table はそのままでは使えない、
つうことだった omz
680674:2007/03/10(土) 22:08:52 ID:???
>>675サン
SELECT count(`in`.`seq`), count(`out`.`seq`) as `out`, `usr_tbl`.`id`, `usr_tbl`.`name`
FROM `usr_tbl`, `in`, `out`
WHERE `usr_tbl`.`seq`=$1 and `usr_tbl`.`seq`=`in`.`seq`=`out`.`seq` and `in`.`flg`=1 and `out`.`flg`=1
GROUP BY `usr_tbl`.`id`

ん。。できないです。。。

JOINとかでできるのかなぁ??
引き続きお願いします!(つ・ω・⊂)
681678:2007/03/11(日) 01:03:54 ID:???
>>680
だからcount内にif文入れろや。 WHEREの条件文もおかしい。
682674:2007/03/11(日) 04:08:39 ID:???
IF知らなかったです…

SELECT if(count(`in`.`seq`),0,1) as `in`, if(count(`out`.`seq`),0,1) as `out`, `usr_tbl`.`id`, `usr_tbl`.`name`
FROM `usr_tbl`, `in`, `out`
WHERE `usr_tbl`.`seq`=1 and `usr_tbl`.`seq`=`in`.`seq` and `usr_tbl`.`seq`=`out`.`seq` and `in`.`flg`=1 and `out`.`flg`=1 GROUP BY `usr_tbl`.`id`

でもこれでもできない…
in    out     id
3     1     test

こんな感じで取り出したいのに。。
683687:2007/03/11(日) 05:15:10 ID:???
もう知らないっ
684674:2007/03/11(日) 07:07:40 ID:???
>>687タン
見捨てないで〜(;ω;)…
685NAME IS NULL:2007/03/11(日) 07:33:42 ID:???
ワロタ
686NAME IS NULL:2007/03/11(日) 12:42:48 ID:???
IN OUTとか多分ログで、多分物凄い量になると思うんだけど
無理にどこもかしこもJOINせずにユーザー/INOUT分ければ?
687NAME IS NULL:2007/03/12(月) 02:31:22 ID:???
呼んだ?
688NAME IS NULL:2007/03/12(月) 03:14:24 ID:???
mysql 4.0系をつかってるのですが
テーブル内で最新の日付のレコード(複数)を取得するのに
postgresqlだと副問い合わせを使えば取得できるのですが
mysql 4.0系だとどんな方法が一般的ですかね。

単純にSQLを1回余分に投げるしかないでしょうか。
ちなみにアプリケーション側ではperlのDBIx::Classを
初めて使ってみています。OR末派の詳しい使い方を調べた
ほうが早いのかな。


689NAME IS NULL:2007/03/12(月) 05:00:45 ID:tUh+hjnH
その前に、できるWindowsを読んだほうがいいんじゃないかな?
690NAME IS NULL:2007/03/12(月) 11:11:42 ID:???
>>688
allのことだな。
group by は先に見付けたものをチョイスするので、サブクエリで取り出したい
順番に並び替えた結果を group by している。
他の方法があるのかもしれないが。
691NAME IS NULL:2007/03/12(月) 11:13:21 ID:???
>>674
なぜ1つにまとめないのかなぁ。
692NAME IS NULL:2007/03/12(月) 11:14:01 ID:???
>>674
間違えた、「なぜ1つにまとめたいのかなぁ」
693NAME IS NULL:2007/03/12(月) 19:58:38 ID:TBb3GFbp
SQL実行に1秒掛かると、『バグ』ですって言われました。。。 @V@
694NAME IS NULL:2007/03/12(月) 20:01:45 ID:???
>>674
間違えた、「なぜ1つにまとめられないのかなぁ?」に修正
695674:2007/03/12(月) 22:00:16 ID:???
>>686サン
100人のデーターとるときとかレスポンスが悪すぎだし…
1クエリでとれるならいなぁって思ってます。

>>694サン
お願いします(>ω<)!
まだできずにここだけ進まないぉ(;ω;)…
696NAME IS NULL:2007/03/13(火) 01:46:00 ID:fO+M+rlg
SQL文で質問ですー。どなたか助けてください。

ID , DAT_A , DATA_B
1 1 1
2 1 2
3 1 3
4 1 4
5 2 1
6 2 3
7 3 2
8 3 3
9 3 4

この時 DATA_Bの値が「1」「2」「3」「4」
を持つ DATA_A を求めたい(この場合 1が帰れば正解)
のですが、どのようなSQL文になるでしょうか?
MySQL 4.1 です。

697687:2007/03/13(火) 03:10:19 ID:???
 |
 |、∧
 |Д゚) ジー
 ⊂)
 |/
 |
698NAME IS NULL:2007/03/13(火) 08:29:12 ID:???
>>696
SQL初心者のおいらが思いついた文

SELECT DISTINCT data_a FROM
tbl AS t,
(SELECT DISTINCT data_a AS t1_data_a FROM tbl AS t01,
(SELECT DISTINCT data_a AS t2_data_a FROM tbl AS t02,
(SELECT DISTINCT data_a AS t3_data_a FROM tbl AS t03,
(SELECT DISTINCT data_a AS t4_data_a FROM tbl AS t04
WHERE t04.data_b=4) AS t4
WHERE t03.data_b=3 AND t03.data_a=t4.t4_data_a) AS t3
WHERE t02.data_b=2 AND t02.data_a=t3.t3_data_a) AS t2
WHERE t01.data_b=1 AND t01.data_a=t2.t2_data_a) AS t1
WHERE t.data_a=t1.t1_data_a
699NAME IS NULL:2007/03/13(火) 11:38:39 ID:???
>>696
DAT_Aでグループ化して
全部の条件をAND
700NAME IS NULL:2007/03/13(火) 11:51:16 ID:???
>>696
「この場合 1が帰れば正解」って言われても具体的な条件(DAT_A,DATA_B)
を出さないと答えようがない。
701NAME IS NULL:2007/03/13(火) 12:05:50 ID:fO+M+rlg
>>698

ありがとうございます。
書いてもらったSQL文を参考にこんなのも考えてみました。

select * from table WHERE DATA_B=1 AND DATA_A IN (
  select DATA_A from table WHERE DATA_B=2 AND DATA_A IN (
    select DATA_A from table WHERE DATA_B=3 AND DATA_A IN (
      select DATA_A from table WHERE DATA_B =4
    )
  )
)
;

しかしサブクエリーが入れ子になっているからでしょうか、
結果が帰ってくるのがものすごく遅いです。(数秒かかります)
もっと早いSQL文はないでしょうか?

702NAME IS NULL:2007/03/13(火) 12:12:35 ID:fO+M+rlg
> >>696
> 「この場合 1が帰れば正解」って言われても具体的な条件(DAT_A,DATA_B)
> を出さないと答えようがない。

説明不足でもうしわけないです。

DATA_Bが「1」「2」「3」「4」の値を持つ
DAT_Aを求めたいという事です。

例の場合
DAT_A 1
という値を取得したいという事です。

(すいませんまだ外してたら指摘してください。)

703NAME IS NULL:2007/03/13(火) 12:17:02 ID:fO+M+rlg
>>699
> >>696
> DAT_Aでグループ化して
> 全部の条件をAND

select * from table group by DAT_A
having
DAT_B=1 AND
DAT_B=2 AND
DAT_B=3 AND
DAT_B=4
;

でしょうか?このSQL文では
DAT_A 1
の結果は得られませんでした。
704700 :2007/03/13(火) 12:48:35 ID:???
>>696
よくわからんが、これでどうだい。

select * from hoge a,hoge b,hoge c where
a.DAT_A=b.DAT_A and a.DAT_A=c.DAT_A and
a.DATA_B=1 and b.DATA_B=2 and c.DATA_B=3;
705NAME IS NULL:2007/03/13(火) 13:16:04 ID:???
>>696
SQL初心者のおいらが再考した文

SELECT t1.data_a
FROM tbl AS t1, tbl AS t2, tbl AS t3, tbl AS t4
WHERE t1.data_a = t2.data_a = t3.data_a = t4.data_a
AND t1.data_b =1
AND t2.data_b =2
AND t3.data_b =3
AND t4.data_b =4

一緒か。
706NAME IS NULL:2007/03/13(火) 13:17:55 ID:???
>>696
DAT_A , DATA_B でグループ化。(一応WHERE DATA_B<5)
このユニーク分を DAT_Aでグループ化しカウント。
そのカウントを HAVING count(hoge)=4 で絞れば解。

たぶんサブクエリ1ついると思うけど、indexを意識して
ちゃんと書けば一瞬で終わると思う。
707687:2007/03/13(火) 13:21:01 ID:???
>>674
in out テーブルが分かれているせいで、いまのままでは
in×outの行が出て効率が悪い。 解決するには、inout判別カラム
を追加した1本のlogテーブルで運用する。
現状のテーブル構成なら、inとoutの統計をjoinだろう。
708674:2007/03/13(火) 14:12:36 ID:???
>>687タン
なるほど!(uдu)♪
そんな手があったんですね♪
本当にありがとうです(;ω;)…

そっちのほうが後々便利そうなのでかえます!
また分からなくなったら聞きに来ますね♪
(○・ω・)検索した後で来ますノデ
709NAME IS NULL:2007/03/13(火) 14:39:32 ID:xls9J88J
>>704
>>705

お二人とも回答ありがとうございます。
704さんの回答
> select * from hoge a,hoge b,hoge c where
> a.DAT_A=b.DAT_A and a.DAT_A=c.DAT_A and
> a.DATA_B=1 and b.DATA_B=2 and c.DATA_B=3;

が実行速度がかなり早く(0.01sec)、かつ望む結果が得られました。ありがとうございます。

>>705
705さんのは704さんのとほんの少し違うだけなんですけど、
実行速度は((1 min 15.95 sec)
でした。。。
SQL文てコワイんですね。。。

せっかくなので他に回答いただいた方法も試してみます。
お二人ともどうもありがとうございます。
710NAME IS NULL:2007/03/13(火) 15:03:51 ID:???
create table tbl1(
col1 INT NOT NULL AUTO_INCREMENT DEFAULT 0,
col2 DECIMAL(13,0) NOT NULL DEFAULT 0,
PRIMARY KEY (col1)
) TYPE=MyISAM;

create table tbl2(
col1 INT NOT NULL AUTO_INCREMENT DEFAULT 0,
col2 DECIMAL(13,0) NOT NULL DEFAULT 0,
PRIMARY KEY (col1)
) TYPE=MyISAM;

上記のtbl2.col2を丸々tbl1.col2へ移して、tbl1.col1は1から連番を振りたいのですが
どうすればいいんでしょうか・・・
MySQL4.0.2で副問い合わせが使えません
711710:2007/03/13(火) 15:04:31 ID:???
↑すみませんスレ間違えました
712NAME IS NULL:2007/03/13(火) 15:29:14 ID:???
変な質問ですが宜しくお願いします。
掲示板などにリンクがはられた場合、
リンク先をDBに照会して、危険ホストかチェックするような、
MySQLを使ったWebアプリケーションを作ろうと思うのですが、
1秒間に100ユーザーがチェックする動作を行うとして、
その程度のクエリ発行数は余裕で耐えられますか?

本当は入力の時点で弾くべきだとは思うのですが、わけありでできないので…
713NAME IS NULL:2007/03/13(火) 17:18:43 ID:xls9J88J
またしても質問なんですが・・・・・。
下記のような簡単なLEFT JOIN のSQL文があります。

-------------------------------------------
SELECT
a.* ,
z.*
FROM
datatable a
LEFT JOIN master_table z ON a.data_id = z.data_id
;
-------------------------------------------

これはうまく動いているのですが、これに自己結合を追加したいと思って


-------------------------------------------
SELECT
a.* ,
b.column ,
z.*
FROM
datatable a , datatable b
LEFT JOIN master_table z ON a.data_id = z.data_id
-------------------------------------------

とすると「Unknown column 'a.data_id' in 'on clause'」というエラーになっていまいます。
どういうふうに記述すればいいでしょう?
714NAME IS NULL:2007/03/13(火) 18:23:18 ID:???
>>712
不明瞭な点(DBの動作するマシンのスペックやOS、DB登録数など)が多すぎるので自分で実際に試してみよう。

>>713
とりあえずJOINのリファレンスでも読んでください。
ttp://dev.mysql.com/doc/refman/4.1/ja/join.html
715712:2007/03/14(水) 04:02:25 ID:???
>>714
ごめんなさい。情報が足りませんでしたね。
OSはLinux、マシンスペックはCore 2 Duo T7200*2、メモリは2GB、MySQLは5.1です。
DB登録数は最初は200ほどですが、最終的には1000ぐらいになると思います。
716NAME IS NULL:2007/03/14(水) 06:05:51 ID:???
訳ありの時点で駄目だろうな。
多分運用入ってから腐具合出まくりだと思う。

100ユーザどころじゃ済まないと思うよ。
10万ユーザとか考えて検証しておくべき。現実的な解は無いと思うが。
717NAME IS NULL:2007/03/14(水) 08:04:11 ID:???
>>715
どうせ2ちゃんブラウザのブラクラチェッカーみたいなことやるんでしょ?
であれば、リンクって事だから前方一致でインデックス効かせられるだろうから、
それぐらいはこなせるとは思う。
とにかくやってみてチューニングして行けばいいんだよ。
そしたら直感的に見積もれるようになるよ。
718NAME IS NULL:2007/03/14(水) 21:48:53 ID:???
POP3でメールをゲットし、Subject,From,Date,Body,添付ファイル を
DBに保存します。添付ファイルは複数ある場合のことも考えると
どんなデータ型で保存するとよいのでしょうか?
719NAME IS NULL:2007/03/14(水) 23:09:55 ID:???
>>718
テーブル2つ。添付ファイルはBLOBでいいんじゃね?
720NAME IS NULL:2007/03/15(木) 16:25:17 ID:???
くだらない質問で申し訳ないのですが、
primary key,unique,indexなどは、テーブルをcreateするときに指定するのか、
テーブルを一旦作った後、alter文で変更するかどちらがいいのでしょう?
721NAME IS NULL:2007/03/15(木) 17:59:12 ID:w7wA0ao4
テーブルに500万件くらいになってくると、
INSERT IGNORE INTO が遅くなんね?
マジイライラす。
722NAME IS NULL:2007/03/16(金) 13:00:31 ID:???
速度を求めるなら、ABに金払うなりオラクルでもどうぞ。
723NAME IS NULL:2007/03/16(金) 13:24:15 ID:???
遅くなってきたら鯖を強化するなり追加するなりすれば?ってトコロだろ。
724NAME IS NULL:2007/03/16(金) 13:32:27 ID:???
500万件もデータ持ってるような奴って何者だろ
725NAME IS NULL:2007/03/16(金) 22:15:03 ID:???
>>718
オレならソースのまま1カラムに保存するけどメリット・デメリットがあるだろうし、
考えてみたら板違いなネタじゃん。
726NAME IS NULL:2007/03/17(土) 15:43:12 ID:???
皆さんにお聞きします。
PV情報をDBに格納するのってありですか?

PVだけで膨大なデータ量になると思うのですがそれが原因でMySQLの動作が遅くなるものでしょうか?

PVを見れるようにしてくれといわれたのですがどうやって保存すればいいやら…
携帯サイトなので後々どの携帯からのアクセスが多いのかとかをチェックするのだと思います。
お力お貸しください
727NAME IS NULL:2007/03/17(土) 16:06:59 ID:???
InnoDBでテーブルを作るとWarningが出るのですがなぜでしょ?
テーブルはちゃんと作られているんですが。
728NAME IS NULL:2007/03/17(土) 16:51:56 ID:???
>>726
したきゃすれば?。

漏れだったらPV情報を多角的(?)に分析したいならDBに入れてもいいと思うけど、
「どの携帯のアクセスが多いか?」なんて一時的かつ過去分のデータに
重み(?)がない情報はWeb鯖のアクセスログをシェルスクリプト
で集計して適当なテキストファイルにおいとけば?って思う。

ただシステム屋としては「ハイハイ」と言いながら対応してお金絞りとるけどw
729726:2007/03/17(土) 17:23:49 ID:???
>>728
そうですか…
アフィリエイトにも出すそうなので
?aff=$1のPV状況とかもとりたいそうですがテキストファイルのほうが良さそうですね。
ありがとうです
730NAME IS NULL:2007/03/17(土) 19:05:17 ID:???
Apacheのログを解析すればいいんでね?
731NAME IS NULL:2007/03/18(日) 00:24:25 ID:???
>>727
show warnings;
732NAME IS NULL:2007/03/18(日) 00:33:50 ID:9Z8drM+C
hogeというフィールドがTable_aにある場合、Table_bにhogeというフィールドを入れることは出来ますか?
733NAME IS NULL:2007/03/18(日) 00:52:30 ID:???
なんという初歩的な質問・・・
 フィールドに入れることはできる

聞く前に自分でいろいろ試してみるよろし
あと、マニュアルには初歩的な疑問についてもできるできない書いてある
734NAME IS NULL:2007/03/18(日) 13:05:01 ID:s8JW4YsT
教えてください。
外部キー制約についてなんですが

alter table TABLE1 add foreign key (`COLUMN`)
references TABLE2(`COLUMN`)
on delete cascade
on update cascade;

これを行うと、エラーなく期待通りになります。
(TABLE1側で行を削除すると、TABLE2側でも対応する行が消えることを確認済み。)
ですが、PCを再起動するとなぜか解除されます。(TABLE2側に繁栄されなくなる。)
データまで巻き戻しになってるわけではないので、制約だけが失われるのが不思議でしょうがないのですが、なにか原因か対処はわかりますか?
5.0.7-beta-ntをwinxpで動かしてます。
735734:2007/03/18(日) 13:07:10 ID:???
訂正、
>(TABLE1側で行を削除すると、TABLE2側でも対応する行が消えることを確認済み。)
1と2が逆なのは気にしないで下さい…。
736NAME IS NULL:2007/03/18(日) 15:15:24 ID:3EJmhwJi
linuxにMySQLを入れて使ってます。

コマンドライン上でMySQLへログイン後に
一時的にシェルを操作したい時、
何か良い方法はありませんか?

viでいう:shのようなコマンドが
あったような記憶があるんですがどうでしょうか?
737NAME IS NULL:2007/03/18(日) 18:18:15 ID:???
>736
help

738NAME IS NULL:2007/03/18(日) 20:16:41 ID:???
そのままもう一つシェル開けばいいんじゃね?
739NAME IS NULL:2007/03/18(日) 21:00:38 ID:???
mysql> system
740NAME IS NULL:2007/03/19(月) 18:44:53 ID:wYudIhCy
コマンドラインからblobデータの画像を表示させる方法ないでしょうか?
普通にselectすると当り前ですが文字化けしますよね?
741NAME IS NULL:2007/03/19(月) 20:03:13 ID:dhMLN2ts
>>740
はあ? (^^; どんなデータが入っているかコンソールがわかってると思うかい?
742NAME IS NULL:2007/03/19(月) 20:20:19 ID:???
カラム型に IMAGE ってのがあったら便利かもね
743NAME IS NULL:2007/03/19(月) 20:28:11 ID:???
Xじゃないとイメージ出ないしなぁ。(^^;
744NAME IS NULL:2007/03/19(月) 23:52:31 ID:???
>>743
phpmyadminとかでならあったら便利かも
用途のある程度決まったデータを格納するための型ってのは
検討の余地がある気がする

見れなくても別に困るもんじゃあないし
745NAME IS NULL:2007/03/20(火) 01:20:28 ID:???
SQL文を最適化(一番まとまった書き方)したいのですが、可能でしょうか?
簡単に書くと、SQL文を短縮すると思いますがその最適化した文を取り出したいのです。
746NAME IS NULL:2007/03/20(火) 02:00:15 ID:???
テーブルAのidを更新すると、テーブルB、テーブルCのidも更新される
みたいなのって外部キーを設定すれば自動で出来ますか?
747NAME IS NULL:2007/03/20(火) 13:51:25 ID:???
>>745
短きゃよいSQL文だとは限らない。
使うSQL文、queryするカラム、インデックスの関係が肝。
explain で勉強しる。
748NAME IS NULL:2007/03/20(火) 22:56:48 ID:???
SELECT `usr_tbl`.`seq`, sum(case `count`.`in_out` WHEN 1 THEN 1 WHEN 0 THEN -1 ELSE 0 END) cnt, `usr_tbl`.`money`
FROM `count`, `usr_tbl` WHERE `count`.`flg`=1 and `count`.`time`>='2007-3-21' GROUP BY `usr_tbl`.`seq` ORDER BY `usr_tbl`.`money` DESC LIMIT 0,5

ランキングを作っているのですがどうしても思い通りのクエリがかけません。。

usr_tbl.money(振込み額)が多い順で、 取り出す際、
今日のcnt( in_out=1(INカウント) - in_out=0(OUTカウント))の結果も一緒にとり出したいのですが今日のカウントが一件もないときに空を返してしまいます。

一件もないとき、cntは0でなおかつmoneyが多い順に取り出したいのです。

ご教示お願いいたします。
749NAME IS NULL:2007/03/22(木) 04:24:26 ID:???
MythTVという録画ソフトがMySQLを用いていて、
その録画情報をコマンドラインから直接見たいのですが
selectでたたいてみても文字化けしてうまく見れません
そのテーブルのDEFAULT CHARSETはlatin1となっているのですが
シェルの文字コードはEUCなのでこうなっていると思われます
MySQLのバージョンは5.0.27です どうすれば読めるようになるでしょうか?
750NAME IS NULL:2007/03/22(木) 13:41:10 ID:???
>>749
set character_set_results=ujis;
751NAME IS NULL:2007/03/23(金) 13:04:15 ID:???
PS3でFolding@homeが利用可能になりました!
タンパク質解析プロジェクトFolding@homeで病気で苦しむ人達を救えるかも。

PS3でFolding@homeしようぜ(Team 2ch)
http://ex22.2ch.net/test/read.cgi/ghard/1174030817/

チーム番号:162
チーム名:Team 2ch
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162

☆PS3での参加方法
PS3からFolding@homeを起動し、チーム番号162に入力すればOK。
ユーザ名は何でも良いが、http://folding.stanford.edu/japanese/download.html
にて、名前が既に使われているかどうか確認する事を推奨。
参加の確認としては、「オプション(△)」→「関連サイト」→「チーム処理統計量」と開き、
「Team 2ch」(上記URLのページ)が表示されればちゃんと参加できている。
☆Folding@homeについて
http://folding.stanford.edu/japanese/
752NAME IS NULL:2007/03/24(土) 00:41:36 ID:???
MYSQLってインラインビュー使えないんだね。
不便じゃない?
753749:2007/03/24(土) 05:47:45 ID:???
>>750
レスありがとうございます
でもそれやっても変わりはしましたがまだ化けたままです
754NAME IS NULL:2007/03/24(土) 08:52:04 ID:???
>>752
少なくともMySQL5ではできるってば
どのバージョンを使ってるんだ?
755752:2007/03/24(土) 15:58:23 ID:???
>>754
MySQL5使ってる。
お、ほんとだ
古いサイト見てたみたいだ!
教えてくれてどうもです!
756NAME IS NULL:2007/03/24(土) 17:33:34 ID:???
>>753
set names sjis; は試した?
757NAME IS NULL:2007/03/25(日) 11:35:31 ID:???
仕事でいまだに3.23使わされてる人、あつまれ!
758NAME IS NULL:2007/03/26(月) 01:39:34 ID:???
質問です。 (使用バージョン4.0.24)
テーブルが2つあります。(A & B)
A.name=B.name の条件に当てはまるレコードを、
テーブルAから全て削除したいと考えています。

サブセレクトが使えない為、この場合どのように
するべきでしょうか?
759758:2007/03/26(月) 02:38:15 ID:???
自己解決しました。 失礼いたしました。

DELETE A FROM A,B WHERE A.name=B.name
760NAME IS NULL:2007/03/26(月) 22:23:53 ID:???
すみません、質問です。初心者です。
Mysqlって、データベースを複数用意できて、その中に複数のテーブルを
持てて、各テーブルにフィールド用意して情報を保存していくんですが、
一つデータベース(A)にテーブル1、テーブル2、テーブル3、テーブル4、、、
と足していくのと、
データベースを二つ用意して
データベース(A)にテーブル1、テーブル2
データベース(B)にテーブル3、テーブル4、
と情報を入れていくのの違いってなんですか? 何を基準にデータベースそのものを
増やすとかするんでしょう。絶対的な基準とかあるんですか?
761NAME IS NULL:2007/03/26(月) 22:42:51 ID:???
>>760
絶対的な基準はない。
データベースをどのように構築し、運用していくかによる。
762NAME IS NULL:2007/03/27(火) 03:24:44 ID:???
localhostで動かしてるMySQLは、全部一つのデータベースでテーブルたくさん作ってる。
個人用だからと割り切ってだけど。
住所録テーブルやら日記テーブルやら。
763NAME IS NULL:2007/03/27(火) 16:53:51 ID:???
容量的な問題とか、バックアップの都合で分けとくとか、アクセス権を分けておくとか。
必要性がなければ一つでもいいと思うよ。

どうせ何度も作り直すことになるだろうし。
764NAME IS NULL:2007/03/27(火) 22:50:51 ID:???
>>760 誘導

★ 誰かがデータベース構成を考えてくれるスレ ★
http://pc11.2ch.net/test/read.cgi/db/1174468935/

しかし、まともな回答は期待しないようにw
765NAME IS NULL:2007/03/29(木) 22:34:56 ID:???
今、久々に会社で開発を頼まれて困っているのですが

INSERT INTO `database_a`.`table_a`
SELECT `id`,
CONCAT (
`a`,
`b`
) AS `hoge`,
`c`
FROM `database_b`.`table_b`

このSQL文を実行すると#1064 - You have an error in your SQL syntax.がでてしまいます。
別DBにあるテーブルに、文字列結合しながらinsert selectを行ないたいのですが…

バージョンは4.0.26です。
助けてください…
766NAME IS NULL:2007/03/30(金) 00:44:48 ID:???
>>765
table_a のカラムを書きましょう。 父ちゃん情けなくて涙が出てきます。
767NAME IS NULL:2007/03/30(金) 01:14:00 ID:???
>>766
レスありがとうございます。

table_aのカラム数は3つで、フィールドタイプも問題ないので
書いても一緒なんですよ。書いても同じエラーが出る状態です。

ちなみにDBの構成を少し変える為にこのようなクエリ書いてます。
768NAME IS NULL:2007/03/30(金) 08:47:19 ID:???
>>765
サブクエリだよね?
使えたっけ?
769765:2007/03/30(金) 09:05:14 ID:wTkQu45n
>>768

INSERT INTO `database_a`.`table_a`
SELECT `id`,
`a` ,
`c`
FROM `database_b`.`table_b`

これは実行できるんです。
CONCAT()が入ると動かなくなる感じです。
770765:2007/03/30(金) 09:26:41 ID:???
すいません、自己解決しました。
お騒がせしました。
CONCAT(    :正
CONCAT (    :誤
でした。

PHPMyAdminで作業してたのですが、

SELECT `id`,
CONCAT (
`a`,
`b`
) AS `hoge`,
`c`
FROM `database_b`.`table_b`

だけの時は普通に動いてた(phpMyAdminが内部的に空白消してくれてた?)
のでドツボにハマってました。
771NAME IS NULL:2007/03/30(金) 19:47:32 ID:???
くーーー泣ける話じゃねーーかw
772NAME IS NULL:2007/03/31(土) 16:36:44 ID:???
mysqlコマンドで、結果を標準出力に出力すると
見やすいテーブルの枠がつく。
ファイルにリダイレクトするときは -t をつけると
同じように見やすいテーブルの枠がつく。

ここで、標準出力に出力するときに テーブルの枠を
表示して欲しくないときは なにを指定すればいいの?
773NAME IS NULL:2007/03/31(土) 17:03:30 ID:???
>>772
mysql ... | cat

ちなみに、ファイルにリダイレクトしても「標準出力」は「標準出力」。
たぶんチミの言いたいのは「端末」。
774773:2007/03/31(土) 17:10:08 ID:???
>>773
あ、mysql -s でokだった
775NAME IS NULL:2007/04/01(日) 02:37:36 ID:???
>>774
ありがとう。
ケツが借りたくなったらいつでも呼んでくれ。
776NAME IS NULL:2007/04/01(日) 16:03:33 ID:???
mosql.jp ...
777NAME IS NULL:2007/04/01(日) 18:33:37 ID:???
>>776 ああ、もう乗り換えるしかないっしょ。
778NAME IS NULL:2007/04/01(日) 18:57:47 ID:???
今年もあるの?
779NAME IS NULL:2007/04/01(日) 21:16:37 ID:???
780NAME IS NULL:2007/04/01(日) 22:47:09 ID:???
なんつーか、ビミョーだな
781NAME IS NULL:2007/04/02(月) 00:22:36 ID:???
わざわざこのためにドメイン取ったのか
782NAME IS NULL:2007/04/03(火) 15:29:06 ID:S8w1WnRz

LinuxのFedora6にMySQL5.0.37をインストールしました。
最後にmysqld_safeをバックグラウンドで走らせたのですが、
そのことを忘れてPCを再起動してしまいました。
これって問題あるでしょうか??

783NAME IS NULL:2007/04/03(火) 16:05:44 ID:???
ペットのテーブルに犬ネーム、猫ネームのフィールドがあるとして
その二つを1つのカラムに出力する方法ないでしょうか?
select dogname, catname from pet;
だと別々のカラムになりますが、
これを1つのカラムでセレクト出来るようにしたいのです。
784783:2007/04/03(火) 16:35:14 ID:???
自己解決しました。unionでできた。
785NAME IS NULL:2007/04/04(水) 06:16:25 ID:???
>>781
ただのジョークサイトだと思ったけど、そうでもないらしい。

http://www.mysql.gr.jp/frame/modules/news/article.php?storyid=92
786NAME IS NULL:2007/04/04(水) 09:32:38 ID:???
>>785
あんだけの文章から、まともに開発してるとも思えねーけどな。
787NAME IS NULL:2007/04/04(水) 19:17:59 ID:???
>>786
いや、すごく萌え萌えなDBMSが出来るに違いない。
6月の発表にはすごく期待している。

以下、去年の発表からの想像だけど

---------------------------------------------------------------------
$ mysql -u moemoe test
おかえりなさいませ、ご主人様
萌えすきゅ〜える 10g version:5.0.37-with-moemoe
ご用の時は"help"ってお呼びください。

mosql> INSERT INTO manko VALUES ("固くて太いもの","白くて???な液体");
かしこまりました。
あっあっあっ間違えちゃった!まだまだ突いて〜、ご主人様。
んっ、、、んっ、、、んっ、、、
実行しました、ご主人様。

mosql> exit
いってらっしゃいませ、ご主人様。

$

---------------------------------------------------------------------

788NAME IS NULL:2007/04/04(水) 21:26:14 ID:NXuru8JU
どなたかご教授下さい!
GROUP BY で取得した値が昇順なんですが、
これを降順で取得する方法はどうすればよろしいのでしょうか?

例えばメールテーブルがあったとして、送信者に対してGROUP BYとしたら
送信日時が最初のものが抽出されるのですが、これを最終の送信日時を
取得する様にするにはどうすれば・・・orz
789NAME IS NULL:2007/04/04(水) 22:39:42 ID:???
>>788
もっとSQLの基本を勉強しましょう。母ちゃん情けなくて涙が出てきます。
790NAME IS NULL:2007/04/04(水) 23:00:40 ID:???
もうちょっと勉強しようと言う気はないのかねえ。
一冊本読めと思う。
791NAME IS NULL:2007/04/04(水) 23:15:49 ID:???
>>789
MySQLマニュアルのGROUP BYの所にはありませんでした。
これってSQLの基本なんですか?

>>790
一冊とは具体的にどの本の事でしょうか?
792NAME IS NULL:2007/04/04(水) 23:43:21 ID:???
GROUP BY 降順
とかでぐぐろーとは思わない?
793789:2007/04/04(水) 23:45:32 ID:???
>>791
基本です。 

誘導 *このスレを嫁!という意味です。すぐに質問しない事! 念のため

【帰ってきた】SQL質疑応答スレ 3問目
http://pc11.2ch.net/test/read.cgi/db/1160458216/

推薦図書/推薦HP/必読書のためのスレッド
http://pc11.2ch.net/test/read.cgi/db/1066219504/
794NAME IS NULL:2007/04/05(木) 00:14:12 ID:???
>>791
ttp://dev.mysql.com/doc/refman/5.0/en/select.html を見ると、
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]
とある。こういうのを「もろに書いてある」と言う。
795NAME IS NULL:2007/04/05(木) 01:39:42 ID:???
>>785
そのnewsの日付も 4/1 なわけだが
796NAME IS NULL:2007/04/05(木) 02:19:04 ID:???
とりあえず書店に行って、理解できそうな本を一冊買え。
一冊読んでみて、解決しないなら、他の本をもう一冊買え。以下ループ。

無料で技術が得られるほど甘くはないよ。
技術はダウンロードできるわけじゃないし。実技試験と同様で試行錯誤して覚えていくものだ。
797NAME IS NULL:2007/04/05(木) 03:37:27 ID:???
降順が基本でないなら何なんだい。 その推考力に父ちゃんあきれるわい。
798NAME IS NULL:2007/04/05(木) 04:16:43 ID:???
基本は「先に出てきたレコード順」じゃないのか?
GROUPで括ると自動的にソートになる自体がトリッキーな気がするが。

内部処理的には、取得→ソート→前の行と同じなら括る とでもやってるのかな
799NAME IS NULL:2007/04/05(木) 05:17:33 ID:???
「基本の単語すら分からない」が現れた! 攻撃しますか?(Y/N)
800NAME IS NULL:2007/04/05(木) 09:30:56 ID:???
>>798
内部処理的にはまず必ずソートが入る。
uniq|sortを思い出せ
801NAME IS NULL:2007/04/05(木) 11:25:56 ID:???
教えてやれよ。
日付を maxで取りそれで order by しろ。
group byでチョイスされるレコードを限定したいのならサブクエリで
取り出したい条件で並び替えたものを order by しろ。
以上
802801:2007/04/05(木) 11:28:22 ID:???
誤:取り出したい条件で並び替えたものを order by しろ。
正:取り出したい条件で並び替えたものを group by しろ。
803NAME IS NULL:2007/04/05(木) 15:39:35 ID:???
>>801
なるほど!ありがとうございます。
父ちゃんでも母ちゃんでもない人に勝手に涙を流されて、
こっちが涙を流しそうでしたが、いい人もいるんですね。
オライリー関係読み漁って基本をやり直します。
ありがとうございました。
804NAME IS NULL:2007/04/05(木) 19:25:50 ID:???
>基本をやり直します。
ってやっていたらorder byくらいわかれよ。
805NAME IS NULL:2007/04/05(木) 19:33:54 ID:???
かぁーーーー 泣けるぜw
806NAME IS NULL:2007/04/05(木) 23:56:40 ID:???
じ、じいちゃん…
807NAME IS NULL:2007/04/06(金) 04:42:14 ID:???
解き方は要らないから答えだけをくれる人が良い人か
808NAME IS NULL:2007/04/06(金) 07:14:39 ID:???
 foo | bar
---------
 1 | d
 2 | a
 2 | b
 2 | c
 3 | b
 3 | c
 4 | a
 5 | a
 5 | c

こういった表でbarにある値を含むfooを取得したいのですが
エレガントな方法はないでしょうか?

a ・・・ 2, 4, 5
a & b ・・・ 2
a & b & d ・・・ 無し

今現在こんな泥臭い方法しか思いつかないもので

SELECT distinct(`foo`) FROM `table` WHERE
`foo` IN (SELECT `foo` FROM `table` WHERE `bar` = 'a')
AND
`foo` IN (SELECT `foo` FROM `table` WHERE `bar` = 'b')
809NAME IS NULL:2007/04/06(金) 11:32:19 ID:???
単純に結合すれば
select d1.foo from hoge d1,hoge d2 where d1.bar='a' and d2.bar='b' and d1.foo=d2.foo;
とか、
select d1.foo from hoge d1 left join hoge d2 on d1.foo=d2.foo
where d1.bar='a' and d2.bar='b';
とか
810NAME IS NULL:2007/04/07(土) 17:43:15 ID:???
外部結合と、limitによる制限の質問です。
select * from A left join B on A.key=B.key limit 0,10;
このようなSQLがあったとして、Aから最初の10件を取り出したいのですが、
もしAのキーに対応する行がBに複数あったばあい、
Aから10件を取り出せなくなってしまいます。
BによらずAから10件取り出すにはどうしたらいいのでしょうか。
811NAME IS NULL:2007/04/07(土) 18:30:58 ID:???
>>810
こういうことなのかわからないけれど、先にAから10件とってjoin

SELECT * FROM
(SELECT * FROM a LIMIT 0 , 10) AS c
LEFT JOIN b
ON c.KEY = b.key
812810:2007/04/07(土) 19:08:19 ID:???
ありがとうございます!それでできました。
813NAME IS NULL:2007/04/07(土) 23:12:50 ID:2hdx+L3x
4.1.20ですが、my.cnfの「myisam_sort_buffer_size」って、InnoDBしか使ってないDBでなんか意味あるんでしょうか?
「メモリをやたら食う」と言われて設定を見直してるんですが、ここに64MBも振ってるんですよ。
確かコレ、スレッドバッファだったよね?(^^;
まぁもしかしたら他のシステムでMyISAM使ってるのかもしれないが、それでも一接続でこんなに使ってどーするんだろ……

あと、key_buffer_sizeもやたらいっぱい使ってる。これもMyISAMだけで使うんじゃなかったっけ?
InnoDBならinnodb_buffer_pool_sizeだと思ったんだけど、漏れの記憶あってる?
814NAME IS NULL:2007/04/08(日) 00:17:57 ID:+7AAlgzs
IDにオートインクリメントを設定したテーブルに
INSERTした時、INSERTしたIDを取得したいのですが関数ってあるのでしょうか?
SQL SERVERで言うSCOPE_IDENTITY()のようなものです。
815NAME IS NULL:2007/04/08(日) 00:22:53 ID:???
>>814
LAST_INSERT_ID()
816NAME IS NULL:2007/04/08(日) 00:28:00 ID:+7AAlgzs
>>815
ありずとうございました
817NAME IS NULL:2007/04/08(日) 06:45:10 ID:qcS2LSnp
教えてください。

MySQL5.0のLinux版とWindows版で
SQLの記述の違いとか、注意点とかありますか?

この書き方ではWin版とLinux版は結果セットが違うとか
そんな情報があれば教えてください。

よろしくお願いします。
818NAME IS NULL:2007/04/08(日) 08:00:21 ID:???
819NAME IS NULL:2007/04/09(月) 12:57:31 ID:3wciDzhE
servlet作る際の文字コードについて質問させてください。

例えば、FREEBSD6.2(lang=ja_JP.eucJP)+apache2.2+tomcat4.1+mysql5.0で
掲示板的な事をする場合なんですが、(例えば文字列をpostした場合)

ユーザー@ブラウザ(たぶんwindows-31jが大多数ですよね)でbbs.jspにformからpost
↑ ↓
apache@DefaultCharsetなし
↑ ↓
↑ ↓mod_proxy_ajpによりtomcatへ
↑ ↓
tomcatへリクエスト転送されてくる
↑ ↓
bbs.jsp@←はコンパイル時にwindows-31jからunicodeにJVMが変換
******************
pageディレクティブ
charset=Windows-31J"
pageEncoding="Windows-31J"
mysqlへのI/OのJSP。
コンパイルされているbbs.jspを実行
mysql呼び出し
************************
↑ ↓
↑ ↓  
mysql@←☆☆ここの文字コード何にすればいんでしょう・・・

機種依存文字でも何でも、文字化けしないような設計したいんですが、
mysqlの文字コードどれに設定するべきでしょう?

mysql5.0だとconector/j 3.1x使って色々やるんだと思いますが、
820NAME IS NULL:2007/04/09(月) 20:00:06 ID:???
http://k.hirohama.biz/wiki/index.php/MySQL_Cluster に書いてある
> MySQL Cluster 5.xでは物理メモリ以上のデータを扱うことが出来ない。
これって物理メモリ以上のデータベースを扱えないってこと?
821NAME IS NULL:2007/04/09(月) 22:35:20 ID:???
>>820
MySQL ClusterはオンメモリDBですから。
822NAME IS NULL:2007/04/09(月) 23:52:30 ID:???
えー。
じゃあ、メモリ2GBのマシンを4台で10GBのデータベースをMySQL Clusterで扱うとかできないのか・・・。
5.1でも同様?
823NAME IS NULL:2007/04/10(火) 12:52:20 ID:???
2GBのマシン8台位にすればどうにかなるんじゃないか?
二重化しておかないと1台止まっただけで全体が止まるので16台位いるとは思うが。

clusterに何を見出すかによるが、遅くなってもいいならDataだけをHDDに入れる方法もある。
原理的には通常のMySQL-Clusterとほぼ同じで、
HDD上に割り当てられたファイルをData-Storageメモリに見立てて使うだけ。
Index-Storageはどっちにしろオンメモリになる。

あと、64bitカーネルだと、2GB制限も関係なくなるので、16GBを2台用意すれば二重化付きで要件を満たせる。
824NAME IS NULL:2007/04/11(水) 09:39:37 ID:baSNDIz0
MySQL 4.0.24 のテーブルエラーのチェック方法と
エラーが見つかった時の修正の方法を教えてください。
検索かけたのですが見つからないのです。
825NAME IS NULL:2007/04/11(水) 11:00:08 ID:???
>>824
本当に検索かけたのか?
"MySQL テーブル チェック" でググればわんさか出てくるが・・・
826NAME IS NULL:2007/04/11(水) 12:38:58 ID:baSNDIz0
4.5.6.9とかのだと見つかったのです。マニュアルにもありました。
でも それだとphpMyAdminでエラーが実行できないのです。
で どなたか ご存じ方いらっしゃらないかと思って
書き込んだわけです。
827NAME IS NULL:2007/04/11(水) 15:38:03 ID:???
16台も用意するならオラクルRACで二重化する。
16台もあったらしょっちゅう壊れて使いものにならないぞ。
828NAME IS NULL:2007/04/11(水) 17:51:18 ID:???
>>826
マイナーバージョン毎にマニュアルがある訳無いじゃん。
同じだよ。
>エラーが実行できないのです
意味不明だが、エラーが出たらメッセージとかでググってそれでもわからなければやった手順なり
詳細を説明してエラー晒すことぐらいすればどうだい。
829NAME IS NULL:2007/04/11(水) 20:45:53 ID:baSNDIz0
全てのテーブルをチェックして
『チェックしたものを:テーブルを復旧します』で解決しました。
どうもお騒がせ致しました。
830NAME IS NULL:2007/04/12(木) 00:10:31 ID:???
何が問題でどうやって何が解決したのか全くわからんなw
831NAME IS NULL:2007/04/12(木) 01:20:37 ID:HSZq9XiR
mysql5.0のmasterとslaveの1対1でレプリケーションを行っているのですが
エラーログで下記の記述を発見しました。

Error reading relay log event: slave SQL thread was killed

動作自体は問題なく動いているんですが、
「Error」と書かれているんで気になっています。

これってどんなメッセージなんでしょう?



832NAME IS NULL:2007/04/12(木) 11:20:01 ID:???
>>831
翻訳すると笑える。警察に相談した方がいいかも。

「誤り読書リレーログイベント: 奴隷SQLスレッドは殺されました。」
833NAME IS NULL:2007/04/12(木) 13:10:36 ID:???
「ペロッ これは・・・ エラーメッセージ!」
834NAME IS NULL:2007/04/12(木) 13:27:41 ID:???
リレーログを読み込む為のイベントがエラー: スレーブSQLスレッドは中断されました
リレーログイベント読み込み中にエラー: スレーブSQLスレッドは中断されました

どっちかじゃねぇ
835NAME IS NULL:2007/04/12(木) 14:08:21 ID:iqHXqBa9
MYSQLのmakeに失敗します。
mysql5.0.33のmakeするときのgmakeのversionはどれにすればエラーでないんでしょう?
836NAME IS NULL:2007/04/12(木) 14:22:23 ID:???
殺すとか、殺されたとか物騒だよね。
同僚と話してたら、別の詳しくない同僚に心配されたよ(w

OSとか環境ぐらい書け。
makeの中でconfigureとか読んでたり各種ライブラリも必要なので、エラーメッセージ貼らないと分からないよ。
エスパー光臨を期待するのは自由だが、待ち人現れず。
お金使ってもいいなら、ABにでも駆け込め。金払った分だけ丁寧にサポートしてくれると思うよ。
837NAME IS NULL:2007/04/12(木) 14:26:14 ID:8VlYmzZM
環境はfreebsd6です。
838NAME IS NULL:2007/04/12(木) 14:27:16 ID:???
だ     ・    か      ・    ら

エラーメッセージ
839NAME IS NULL:2007/04/12(木) 14:28:20 ID:8VlYmzZM
あと、autoconf(2.59)autoheader(2.59)aclocal(1.9)libtoolize(1.5.2)automake(1.9)です。
840NAME IS NULL:2007/04/12(木) 14:29:21 ID:8VlYmzZM
あ、エラーメッセージですかwwwwサーセンwwwwwwwwwww

今もう一回コンパってるのでエラーメッセージ消えちゃったのでまたエラーメッセージ今でると思うので、数分まってください
841NAME IS NULL:2007/04/12(木) 14:40:14 ID:???
コンパイルなんてしてる暇があったら、データいじくってます><
842NAME IS NULL:2007/04/12(木) 14:45:07 ID:8VlYmzZM
#./configure --with-extra-charsets=all --with-charset=eucjpms
↑すると↓になって

MySQL has a Web site at http://www.mysql.com/ which carries details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.

Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.

Thank you for choosing MySQL!

# gmake
↑すると↓になってしまいます

--preserve-dup-deps: not found
gmake[4]: *** [udf_example.lo] Error 1
gmake[4]: Leaving directory `/tmp/mysql-5.0.33/sql'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/tmp/mysql-5.0.33/sql'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/tmp/mysql-5.0.33/sql'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/tmp/mysql-5.0.33'
gmake: *** [all] Error 2
#gmake install
843NAME IS NULL:2007/04/12(木) 14:48:33 ID:8VlYmzZM
ちなみにGNU Make 3.81です
844NAME IS NULL:2007/04/12(木) 14:49:01 ID:???
もっと上の方は?
つーか、BSDスレで聞いたほうがいいんじゃねえの?
845NAME IS NULL:2007/04/12(木) 14:51:25 ID:8VlYmzZM
上のほうはこうなってます

Making install in sql
gmake[2]: Entering directory `/tmp/mysql-5.0.33/sql'
gmake install-recursive
gmake[3]: Entering directory `/tmp/mysql-5.0.33/sql'
Making install in share
gmake[4]: Entering directory `/tmp/mysql-5.0.33/sql/share'
gmake[5]: Entering directory `/tmp/mysql-5.0.33/sql/share'
gmake[5]: Nothing to be done for `install-exec-am'.
for lang in czech danish dutch english estonian french german greek hungarian italian japanese korea
n norwegian norwegian-ny polish portuguese romanian russian serbian slovak spanish swedish ukrainian
; \
do \
/tmp/mysql-5.0.33/install-sh -d /usr/local/share/mysql/$lang; \
/usr/bin/install -c -m 644 ./$lang/errmsg.sys \
/usr/local/share/mysql/$lang/errmsg.sys; \
done
/tmp/mysql-5.0.33/install-sh -d /usr/local/share/mysql/charsets
/usr/bin/install -c -m 644 ./errmsg.txt \
/usr/local/share/mysql/errmsg.txt; \
/usr/bin/install -c -m 644 ./charsets/README /usr/local/share/mysql/charsets/README
/usr/bin/install -c -m 644 ./charsets/*.xml /usr/local/share/mysql/charsets
gmake[5]: Leaving directory `/tmp/mysql-5.0.33/sql/share'
gmake[4]: Leaving directory `/tmp/mysql-5.0.33/sql/share'
gmake[4]: Entering directory `/tmp/mysql-5.0.33/sql'
if --preserve-dup-deps --mode=compile gcc -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local\"" -DDAT
ADIR="\"/usr/local/var\"" -DSHAREDIR="\"/usr/local/share/mysql\"" -DHAVE_CONFIG_H -I. -I. -I.. -I../
innobase/include -I../innobase/include -I../include -I../include -I../regex -I. -O3 -DDBUG_OFF
-MT udf_example.lo -MD -MP -MF ".deps/udf_example.Tpo" -c -o udf_example.lo udf_example.c; \
then mv -f ".deps/udf_example.Tpo" ".deps/udf_example.Plo"; else rm -f ".deps/udf_example.Tp
o"; exit 1; fi
--preserve-dup-deps: not found
gmake[4]: *** [udf_example.lo] Error 1
gmake[4]: Leaving directory `/tmp/mysql-5.0.33/sql'
--さっきの続き


BSDスレにいくとたぶんMYSQLスレにいったほういいよって言われそうです・・・
846NAME IS NULL:2007/04/12(木) 14:54:26 ID:???
BSDの問題だぞ、これ
--preserve-dup-dep
これがなんなのかわからないし
udf_example
をこねてるときに、問題が起こってる
847NAME IS NULL:2007/04/12(木) 14:57:33 ID:8VlYmzZM
BSDの問題ですか。教えてもらってありがとうございました。
とりあえず、BSDスレに行ってみます。
またあとでくるので、もし何かわかるかたいたら、カキコよろしくお願いします。
                                               敬具
848NAME IS NULL:2007/04/12(木) 20:28:48 ID:SwCGdKyd
すみません、教えてください。
C++Builder5を使ってMySQL4.1をやろうとしているのですが
データベースエクスプローラでエリアスを作成して開こうとすると
環境パラメータが向こうですとエラーが出ます。
何が原因なのでしょうか・・・
849NAME IS NULL:2007/04/12(木) 20:59:50 ID:???
>>848
環境パラメータが向こう にいっちゃったんじゃねぇ。こっち向かさナイト。
850NAME IS NULL:2007/04/12(木) 23:00:18 ID:???
面白すぎw
851NAME IS NULL:2007/04/13(金) 00:46:33 ID:???
bsdってrpm見たいなの無いのか?
大変だな。
852NAME IS NULL:2007/04/13(金) 03:49:51 ID:???
make world から始まるからなぁ
853NAME IS NULL:2007/04/13(金) 10:55:20 ID:???
>>849
あ、すみません。
どういうことですか?
854NAME IS NULL:2007/04/13(金) 11:36:36 ID:???
とぼけるな!
855NAME IS NULL:2007/04/13(金) 11:44:06 ID:???
っていうか、ODBCのデータソスのドライバ名が文字化けして
ODBCのデータソースが削除できなくなったんですが、
この文字化けしたデータソースはどうやったら削除できますか?
856NAME IS NULL:2007/04/13(金) 14:49:05 ID:???
DBに年齢と誕生日を入れておいて現在の年齢を正確に算出するにはどうすればいいでしょう?

857NAME IS NULL:2007/04/13(金) 15:18:01 ID:???
>>856
誕生日と現日付を使って計算すればいいじゃん。算数できないの?
858856:2007/04/13(金) 15:41:50 ID:???
>>857
19880101
みたいに入れて現在の年月月日で計算するってことですか?
関数とかあります?
859NAME IS NULL:2007/04/13(金) 15:56:49 ID:???
>>858
ちょっとまった。年齢を入れているなら、別に計算の必要はないぞ。
入力した年齢をSELECTで取り出せばいい。
860856:2007/04/13(金) 16:07:54 ID:???
>>859
19とかでいれるってことですか?
その場合、現在の年齢とる時どうするんですか?
登録時(1月1日)19才 誕生日3月1日

2年後の1月1日(現在)の年齢
861NAME IS NULL:2007/04/13(金) 18:07:41 ID:???
>>860
登録時、誕生日を入れるのに年齢を入れる、という仕様から推測するに
きっと女性向けDBで、サバを読んだ歳を入力できるようにするのだろう。
となると、何歳サバを読んでいるかを考慮して「今の正確な年齢」を
算出しなければならないね。

したがって、登録時に入力された年齢と誕生日から算出した年齢との
差分をまず求め、それを現在の日付から出した年齢から引く
という計算が必要になるな。
862NAME IS NULL:2007/04/13(金) 18:30:19 ID:???
で、あとはここを参考にして サバ読み係数を計算すればいい。
http://dev.mysql.com/doc/refman/4.1/ja/date-calculations.html

登録時(1月1日)、自称年齢19才 誕生日3月1日 のとき、
実際の年齢が26歳ならサバは26-19=7歳となる。
2年後の1月1日(現在)の年齢では実年齢28-7=21歳となる。
863856:2007/04/13(金) 18:38:53 ID:???
>>861
30分もかけて考えたわりには面白くないですが、
こっそり教えてくれる心意気&器に感謝m(_ _)m
864NAME IS NULL:2007/04/13(金) 19:37:57 ID:???
出遅れたけど、無理やりSQLで日付から年齢を出すならこんな感じか

select
case when date_format(now(),'%m%e') >= date_format('2000-4-13','%m%e')
then year(now())-year('2000-4-13')
else year(now())-year('2000-4-13')-1
end age;
865NAME IS NULL:2007/04/13(金) 21:04:24 ID:???
つーかその程度は軽く突破するだろ。
今年の20歳の生年ぐらい把握してるだろうし。
866NAME IS NULL:2007/04/14(土) 21:18:19 ID:???
>820-823
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data.html
5.1からはディスクも使うことができるみたいだね。
テラバイトのデータベースもうまく使えるらしい。
867NAME IS NULL:2007/04/15(日) 23:51:45 ID:MArnJ3l2
初歩的な質問で申し訳ないですが、WIN+PHP+MYSQLですが、BIT型に入るデータは「1」か「0」でしょうか?
868NAME IS NULL:2007/04/16(月) 02:04:18 ID:???
5.1ってwinだとクエリーログ作れなくね?
my.ini の mysqld に log って一行書くだけで 5.0 は吐くのに。
869NAME IS NULL:2007/04/16(月) 03:20:33 ID:???
DELETE時のテーブル名のエイリアスって5系だと使えなくなったですか?
870NAME IS NULL:2007/04/17(火) 16:42:38 ID:9EK9d1dQ
初心者でスマンがジャンルとかを指定しつつor検索ってどうやるんだ?

select * from table名 where name like '%鈴木%' and address like '%東京%' or address like '%埼玉%'

こんな感じでやってもできんかった。
誰か頼む。
871NAME IS NULL:2007/04/17(火) 19:51:59 ID:???
>>870
select * from table名 where name like '%鈴木%' and (address like '%東京%' or address like '%埼玉%')
872NAME IS NULL:2007/04/17(火) 22:45:22 ID:???
サイトに接続しにくくなったのでvmstatしてみたら、
cpu使用率が100%にはりついていました。
しかもsyが90%とかになった状態が続きます。
mysqlでシステムでcpu使う処理って何なんでしょうか?
全く検討つきません。
873NAME IS NULL:2007/04/18(水) 00:11:28 ID:???
リナックスの勉強してからサイト管理したら?
多分踏み台にでも成ってると思う。
874NAME IS NULL:2007/04/18(水) 01:00:22 ID:???
>>872
myISAMで大量に更新・追加・削除を繰り返したりしてない?

>>873
mysqlの勉強してから発言したら?
875NAME IS NULL:2007/04/18(水) 10:08:19 ID:???
>>874
myISAMで大量に更新・追加・削除を繰り返したらダメなの?
876NAME IS NULL:2007/04/18(水) 11:08:13 ID:???
>>872
以下、経験から。
ps aux や top でcpuやメモリを食っているプロセスを見つける。
原因が mysqldだったら、mysql のコンソールで、show processlist して
だらだらと処理してる queryを見つけ queryの最適化を実施する。(explain)
スローログを出して特定するのも良い。
またはメモリの使い方が下手でスワップしてるか、あまっているのに使わな
すぎかもしれないのでこの辺り my.cnfで調整する。
それでもだめなら、レプリケーション構成にして負荷分散する。
mysqlのバージョンが3系であれば5系に上げると劇的にcpu負荷が下がる場合がある。
877NAME IS NULL:2007/04/18(水) 18:34:33 ID:???
そこまで高度じゃないと思うぞ。
多分、mysql自体借り物で自分で弄るのは絶望的な悪寒。
878NAME IS NULL:2007/04/18(水) 19:44:36 ID:???
LIKE%-%でなぜかない文字が検索される。
LIKE '%草%'
「草」と検索すると「石」もヒットする。
最初「草原」とやって「石原」もヒットしてなんだぁと思ってたら、
草と石のようです。
確認できてるのはこれだけなのだけど、なんでなのかな?
バージョンは3.23.58です。
879NAME IS NULL:2007/04/18(水) 19:49:51 ID:???
>>878
文字コードの不一致に100カノッサ
880NAME IS NULL:2007/04/18(水) 21:57:27 ID:???
>879
なぜかmysqladminで「バイナリー表示する」にしたら直りました。
バイナリーってなんだかわからないおいらにはわけわかめですが、結果いいのかな・・・。
881NAME IS NULL:2007/04/18(水) 23:03:13 ID:???
良いわけが無い
882NAME IS NULL:2007/04/19(木) 11:10:11 ID:???
>>880
文字コードによっては俗に言うボタンの掛け違いが起こり半角文字が漢字の
2バイト目にヒットしたりして検索結果がおかしくなる。
ちゃんと文字コードを合わせた方が良い。
883NAME IS NULL:2007/04/19(木) 14:51:59 ID:???
コマンド入力よりも、PHPMyAdminに慣れた方がいい?
884NAME IS NULL:2007/04/19(木) 19:35:00 ID:BkJMscZt
おせーてください

テーブル名 aaa
カラム名 bbb
bbbのデータ型 int(10)

でbbbのintにUNSIGNEDとZEROFILLのオプションつけつつ、テーブル作るときはどうコマンド打てばいいですか?

適当に
create table aaa( bbb int(10) zerofill unsigned) engine=myisam;
って書いたらだめでした

885NAME IS NULL:2007/04/19(木) 21:32:32 ID:???
>>884
そのまんま、入れたら文句言わずに出来ましたが? MySQL 4.1.20
886NAME IS NULL:2007/04/20(金) 14:37:49 ID:f8aHPK0/
>>885
サーセン。もう一回入れなおしたらなんか普通にできました。
たぶんスペルミスかなんかだったかも。
サーセンサーセン
887NAME IS NULL:2007/04/20(金) 23:44:43 ID:???
あれ?myIsamでトランザクションできると思ったら
デフォでTable作るとInnoDBになるように変わったのね
888NAME IS NULL:2007/04/21(土) 00:13:30 ID:Rewm4xyR
888get
889NAME IS NULL:2007/04/21(土) 19:48:03 ID:Fmgg/Qbu
MySQL cluster について確認させて下さい。
下記の環境で構築する場合、クライアントのデータベース接続先はどのアドレスを指定すればいいのでしょうか。

MGM 192.168.0.1

├Dataノード1 192.168.0.2

├Dataノード2 192.168.0.3

└接続元クライアント (データベース接続先として指定するホストは?)
890NAME IS NULL:2007/04/21(土) 22:22:48 ID:925HmZrT
5.0スレよりこっちの方が人通りが多いので、こっちでお聞きします。
プロシジャ内で他の言語を呼び出すのは、どう書けばいいのでしょう?(5.0.27)
例えば、perlの文字列変換ライブラリを使って、それをinsertする時。

declare str_hoge varchar(64);
declare str_huga varchar(64);

set str_hoge = [ここに&Library::subroutine(str_huga)とかしたい];
891NAME IS NULL:2007/04/21(土) 22:54:27 ID:???
>>889
cluster構成に必要なものは三つ
・ndb_mgmd
・ndbd
・mysqld
892NAME IS NULL:2007/04/22(日) 01:10:48 ID:???
お客様の中に Falcon を実際に使ってみている方はいらっしゃいませんか。
893NAME IS NULL:2007/04/22(日) 03:49:51 ID:Tbpyr1HK
フラグメンテーションをわざと起こすツールありますか?
効率よくぐっちゃぐちゃのどろどろにしたいんですが
894NAME IS NULL:2007/04/23(月) 11:16:24 ID:R/kf9La4
テーブルの移動を行いたいのですが、
alter table A.test2 rename B.test;
このような感じで別databaseに。でもこれはエラーになってしまいました。

別databaseへの移動の場合は一旦dumpしてから入れなおすという方法しかないのでしょうか?
895NAME IS NULL:2007/04/23(月) 21:01:54 ID:???
insert into テーブル名 select * from データベース名.テーブル名 [where 条件]
896NAME IS NULL:2007/04/23(月) 21:54:16 ID:R/kf9La4
>>895
ありがとうございます。
そうやって出来るのですね!

この文を見て思ったのですが、selectの結果を元にselectって出来るのでしょうか?
だいぶ適当ですが、以下のような感じで。
select i from (select i from test);

試したところ出来ませんでした。教本何冊か見ましたけど載ってません。こういうのが出来ると便利ですけどどうなんでしょうか?
897NAME IS NULL:2007/04/23(月) 22:00:06 ID:???
>>896
sub-select。 MySQLは4.1から可能。
898NAME IS NULL:2007/04/23(月) 22:12:21 ID:R/kf9La4
>>897
ありがとうございます。副問い合わせは where に入れられるだけだと思ってました。fromでもいいんですね。
ずっとselectのページばっかり読んでた(>_<)
select i from (select i from test) a; で出来ました。ありがとうございます。いや〜、恥ずかしい。。
899NAME IS NULL:2007/04/23(月) 23:13:14 ID:v5pJrLpR
Mysql5.0.37をphpadmin2.9.2で操作しているのですが(xampp使っています。)
mysql4.1以上の文字化けの問題らしく、いろいろな方法を試しましたが、文字化けが一向に直りません。
試したことは、インポートするファイルをUTF-8にする。インポートするとき、ファイルの文字セットを初期のUTF-8から変えてみる。
などをひたすらためしました。

何か、これを解決するヒントなどございましたら、お教えください。
900NAME IS NULL:2007/04/23(月) 23:16:32 ID:???
>>899
だからクライアントとサーバの文字コードを
一致させろとさんざん忠告してきたんだがな・・・
文字コードがらみの問題はここに帰着するよ
901NAME IS NULL:2007/04/23(月) 23:25:51 ID:v5pJrLpR
クライアントというのは、ローカルにあるファイルですよね。
それはEUC-JPだったので、それをUTF-8にエンコードしたんです。
サーバの文字コードは、UTF-8なので、これで一致ではないんですか?
902NAME IS NULL:2007/04/23(月) 23:28:52 ID:???
>>901
phpmyadminでやる前にさ、mysqldumpとかで
データが正しく入るかとかを
試してみようとかは思わないのかい?
903902:2007/04/23(月) 23:29:48 ID:1ZecyGJo
(誤)mysqldump
(正)mysqlimport
904NAME IS NULL:2007/04/23(月) 23:32:38 ID:v5pJrLpR
勉強なので、頑張ってやってみます。
905NAME IS NULL:2007/04/24(火) 03:48:16 ID:Igj7DbMV
今チューニングの迷路にはまっているんですが、indexが使用されない原因って
どういう原因が考えられますかね??
ググったり、本見て調べられる範囲の事は全てやってみたのですが、皆目検討つ
きません。
神がかり的な閃きが無いと無理な気がしてます。。

バージョン5で、レコード数多いとこは100万件以上あります。

906NAME IS NULL:2007/04/24(火) 07:14:21 ID:???
>>905
具体性のない聞き方をされてもやり方が悪いのだろうとしかいえないが、いくつか例を挙げると。
単純なケースで索引が使われないとすると、
検索するフィールドに関数を使っている。または中間一致検索を行っている。
 where substr(COL1, 1, 5) = 'ABCDE' だと索引は使われない
 where COL1 like 'ABCDE%' だと使用される。
 where COL1 like '%ABCDE%' だと使用されない。
複合キーの索引で二番目のキーだけで検索しようとしている。
JOINをあれこれ使ってるならその結合の方法が悪い。
SQLにアホなヒントが含まれている。
907NAME IS NULL:2007/04/24(火) 10:00:38 ID:???
>>905
インデックスの使われ方については、>>906の様な規則性が
マニュアルで分かりやすく解説されてる。

実際のインデックス使用状況の調査は EXPLAIN SELECT。
908NAME IS NULL:2007/04/24(火) 11:41:27 ID:???
2分木を自分で作ってみりゃわかる
909NAME IS NULL:2007/04/24(火) 23:03:17 ID:LAPZ3XJh
すみません、ちょっとお伺いしてもよろしいでしょうか?
MySQL 4.1.20+Perl5.xで、Limit句にプレースホルダを使おうとすると
「You have an error in your SQL syntax」と怒られてしまいます。
これってMySQLの仕様なのでしょうか?
910NAME IS NULL:2007/04/24(火) 23:32:24 ID:???
>>909
少なくともうちでは問題がない。
DBI->VERSION は 1.53
DBD::mysql->VERSION は 4.001

1. 実際に書いたSQL文
2. DBIおよびDBD::mysqlのバージョン

を書きな。
911NAME IS NULL:2007/04/25(水) 00:28:15 ID:bO4ZwTXJ
>>910
レスありがとうございます。
実際に書いたSQL文は以下の通りです。

-------------------------------------------------------

$sth = $dbh->prepare(q{

SELECT id
FROM table
WHERE (

alrt_cond = 0 and
? LIKE CONCAT('%', keyword1, '%') or
? LIKE CONCAT('%', keyword2, '%')

)or(

alrt_cond = 1 and
? LIKE CONCAT('%', keyword1, '%') and
? LIKE CONCAT('%', keyword2, '%')

)

LIMIT ?,?

}) or die $DBI::errstr;

-------------------------------------------------------

上記SQL文は「LIMIT 0,10」などと数値を決め打ちすると、
正常に動作します。バージョンですが、

DBI     -> v1.40
DBD::mysql -> v2.9004

となっていました。
モジュールのバージョンのせいでしょうか?
912NAME IS NULL:2007/04/25(水) 08:21:32 ID:???
パフォーマンス出そうにないSQLだなぁ。。。

DBD::mysqlのチェンジログ読みな
ttp://search.cpan.org/src/CAPTTOFU/DBD-mysql-4.004/ChangeLog
913NAME IS NULL:2007/04/25(水) 10:08:07 ID:???
>>911
そういえば、数年前に Limitにプレースホルダ付けられなくて
諦めた様な記憶が…。

にしても、 OR と LIKE の固まりで、確かにこれ遅くないですか?
おれが報酬8千円でテーブル構造含めて直してたげるよw
914NAME IS NULL:2007/04/25(水) 20:00:10 ID:o6tXk+iA
mysql5.0.30,Innodb使ってます

start transaction;
call kansuu;
commit;

とやると2秒

call kansuu;

とやると数時間

この差はどうしてでしょうか
915NAME IS NULL:2007/04/25(水) 20:47:06 ID:???
>>914
その「kansuu」というストアドプロシージャの中身を
見せてくれなければ評価のしようがないんだが・・・
大方ループの中でinsertやらupdateしてるんだろうけどさ
916NAME IS NULL:2007/04/26(木) 00:54:46 ID:???
そうです
1万行
ループの中でinsertやらupdateしてるだけです>kansuu
917NAME IS NULL:2007/04/26(木) 04:02:39 ID:???
まとめてコミットするか、毎回するかの違いでねーの。
918NAME IS NULL:2007/04/26(木) 08:31:26 ID:3AkY0mPI
なるほど、しかし、数時間も変わるのはすごいですね
こんなにはやいならトランザクション利用して処理した方がいいですね
919NAME IS NULL:2007/04/26(木) 08:48:16 ID:???
その分、メモリ食ってたりしないか?
920NAME IS NULL:2007/04/26(木) 12:23:16 ID:3AkY0mPI
私もきになってました
1gだときついけど100mなら何とか行けそうです。
どれくらいなんでしょうかね
921NAME IS NULL:2007/04/26(木) 13:14:06 ID:???
MyISAMでも大量のデータをまとめてinsert、update、load data するなら
最後にまとめてインデックスを構築させると圧倒的に早いケースがある。
もちろん既存データの状況にもよるが。

ALTER TABLE hoge DISABLE KEYS;

LOAD DATA or 大量 insert,update

ALTER TABLE hoge ENABLE KEYS;
922NAME IS NULL:2007/04/26(木) 17:45:58 ID:uFYJq2Vn
>>895さんの書き込みを見て思ったのですが、
SELECTした結果だけではなく、一緒に定数もINSERT
することはできるのでしょうか?

insert into テーブルA select * from テーブルB [where 条件]

だと、テーブルAにはSELECTの結果(のみ)が挿入されますが、
テーブルAのフィールドが2つあったとき、例えば「5」
などの数値とSELECTの結果の一部を挿入できたら、と考えています。

insert into テーブルA (5,select id from テーブルB [where 条件])

みたいな・・・。こんなことって可能でしょうか?
923NAME IS NULL:2007/04/26(木) 18:26:14 ID:uFYJq2Vn
922です。自己レスです。

insert into テーブルA
values(5,(
 select id from テーブルB [where 条件]
))

と、サブクエリを括弧で囲うだけで簡単にできました♪
お騒がせいたしました。
924NAME IS NULL:2007/04/27(金) 01:02:54 ID:???
php でのプログラミング経験はあるんですが、SQL は使ったことの無い初心者です。

php + MySQL で 複数板・マルチスレッドな掲示板を作ろうと思っています。
規模は 1日に1000記事投稿程度で、データは全部 SQL に入れる感じにする予定です。

・板A, 板B, 板C …
・スレッドA, スレッドB, スレッドC …
・レスA, レスB, レスC

って感じに、板にスレッドがぶら下がり、それにレスがぶら下がるという2chのような形式です。

その場合には、

○テーブル1 … 板情報
* 板番号
* 板名称

○テーブル2 … スレッド情報
* 板番号 (どの板に属するスレッドだかを調べる為)
* スレッド番号
* スレッドタイトル

○テーブル3 ・・・レス情報
* 板番号 (どの板に属するレスだかを調べる為)
* スレッド番号 (どのスレッドに属するレスだかを調べる為)
* レス番号
* 投稿日時
* 名前
* 本文

のように、3つのテーブルに全データをいれる感じで問題無いでしょうか?

これだと、スレッド一覧にスレッド作成者の名前を表示する場合には、(一度に100スレッド表示されると)
ページにアクセスしただけで、100個のテーブルが呼び出されることになりますが、MySQL のようなデータベースだと
その負荷は無視できる範囲なのでしょうか?

ご教示いただけたら幸いです。
925924:2007/04/27(金) 01:07:53 ID:???
すみません、訂正です。

(誤) ページにアクセスしただけで、100個のテーブルが呼び出されることになりますが
(正) スレッド一覧ページに1回アクセスしただけで、テーブル1とテーブル2 それぞれ1回ずつに加え、テーブル3 が 100回呼び出されることになりますが

呼び出し方は、

(1) テーブル2 から1行持ってくる
(2) それをもとに テーブル3 を開き、スレッド作成者の名前を入手
(3) テーブル2 から次の1行を持ってくる
(4) それをもとにテーブル3を開き、スレッド作成者の名前を入手
 ・
 ・
 ・
(200) ぐらい

です。

掲示板なので、処理の許容時間は 0.5秒ぐらいです。

もし、負荷が高くて間に合いそうにないのであれば、もっと効率の良い方法を教えていただけるとうれしいです。
926NAME IS NULL:2007/04/27(金) 05:47:05 ID:???
>>925
SQL一発でビュー作って終わりじゃん。 基本のキみたいなSQLだよ。
100回とか関係ないし。
それとテーブル3の板番号は冗長でんな。
927NAME IS NULL:2007/04/27(金) 11:42:08 ID:???
所で、viewってまだ実践で使ったことないんだけど、連結とくらべてパフォーマンス
はどうなんだい? > 良く使ってる貴方。
仮想定義ってことで使い勝手の改善はあるがパフォーマンスは連結と変わらない?
928NAME IS NULL:2007/04/27(金) 12:28:50 ID:???
負荷は実機でテストしろとしか言えないねえ。
一万PVとか処理させたいなら、SQLでいちいち引いてたら捌けないし。
929NAME IS NULL:2007/04/27(金) 14:05:44 ID:9YGHFs07
SQLインジェクションの対策したいんですが何が具体的に何が必要でしょうか?

コーテーションや¥はとりあえずしたのですが
930NAME IS NULL:2007/04/27(金) 14:14:29 ID:???
>>929
プリペアードステートメント使えばいいんじゃない?
931924:2007/04/27(金) 18:47:04 ID:???
>>926-927
回答ありがとうございます。
連結に関しては、標準MySQLを読んだら最初に載ってました。

テーブル3の板番号に関しては、板1にも板2にも、スレッド1が存在する設計なので、必要なんです。
言葉足らずで申し訳ありませんでした。
932NAME IS NULL:2007/04/27(金) 19:46:59 ID:???
>>931
ごめん。よくわかんないけど、テーブル3にテーブル2をJOINして検索ってことでいいの?
933924:2007/04/27(金) 20:08:51 ID:???
>>932

>>925 を書いた時点では、SQLでの連結の存在自体を知らなかったので
SQLで1行読み出して php で内容を確認して、それをまたSQLに代入して…、を100回以上繰り返す
処理にする予定でした。

SQL は、型などがしっかり決まっているただの変数みたいなもんだと思ってたんですが、
MySQL 本を見たらそうじゃないことに気がつきました('A`)
こりゃ習得するのに相当時間かかりそうですねorz

現時点では、テーブル2とテーブル3を外部結合させようかと思ってるんですが、
まだそこらへんの処理のところまで読んでないので、もうちょっとSQL本を読み進めてきます。

934NAME IS NULL:2007/04/28(土) 11:48:10 ID:F1Y64X+f
型決める時TIMESTAMP型とDATETIME型の使いわけってどうわけてますか?
935asari ◆oXbSjQu/Bo :2007/04/28(土) 12:56:12 ID:???
>>934
NULL 代入して現在時刻をセットしたいときに TIMESTAMP
936NAME IS NULL:2007/04/28(土) 13:09:39 ID:F1Y64X+f
>>935
null代入すると現在時刻になるんですか?初耳だなァ・・・感動

あと質問若干ずれるんですけどやたらとアクセス数の多いMYSQL鯖(5.0)でinnoDBでトランザクション管理してて
innoDBのテーブルでrecordのinsert受ける前に別のテーブル(engine=memory)でリクエスト受けて、
ある程度たまってからinnoDBに流すって方法(トランザクションはDBにまかせない方法になりますけど)とったら、
リソースとか結構調子よく節約できるんですか?今思いついただけなんですけど(汗
937NAME IS NULL:2007/04/28(土) 15:43:39 ID:O2vRYv+C
これまで動いていたmysql4.1.22(ソースよりインストール)が動かなくなっていました
本日おこなった作業は
qmail-1.03 インストール(ソースより)
yum にてdovecotインストール
以上です。


# /usr/local/mysql/bin/mysqld_safe &

Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
070428 15:33:53 mysqld ended

/var/run/mysqld以下を観にいこうとしましたがmysqld ディレクトリは在りませんでした。
空ディレクトリ・ファイルを作製してみても解決しませんでした。
解決法をご教示戴けますでしょうか。よろしくお願いいたします。
938NAME IS NULL:2007/04/28(土) 16:20:24 ID:???
>>937
/var/lib/mysql/hostname.err に何か出てないか見てみる
939937:2007/04/28(土) 17:13:13 ID:O2vRYv+C
/var/lib/mysql/ フォルダには
ib_logfile0 ib_logfile1 ibdata1
この3ファイルしか在りませんでした。

/usr/local/mysql/bin/mysqld_safe & 実行時の/var/log/mysqllog は以下の通り
070428 17:07:32 mysqld started
070428 17:07:32 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
070428 17:07:32 InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 43634.
InnoDB: Doing recovery: scanned up to log sequence number 0 43634
070428 17:07:32 InnoDB: Flushing modified pages from the buffer pool...
070428 17:07:32 InnoDB: Started; log sequence number 0 43634
070428 17:07:32 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
070428 17:07:32 mysqld ended

以上です 宣しくお願い致します
940NAME IS NULL:2007/04/28(土) 17:45:57 ID:???
よみゃいいだろ。
941NAME IS NULL:2007/04/29(日) 12:26:29 ID:P3cme2jo
AAAテーブルにはカラムB(intでPRIMARYKEYでAUTOIN_CREMENT)とカラムC(int)があります。
カラムCもAUTO_INCREMENTみたいに自動で1づつふやしたいんですけど、auto_incrementはprimary keyにしかつけられませんよね?
どうやったらキーにしてないカラムCをインクリメントできるんでしょう?アプリ側でインクリメントするしかないんですか?
942NAME IS NULL:2007/04/29(日) 14:22:13 ID:???
>>941
Cもauto_incrementするならB使えば良いじゃないの、
ってことで複数auto_incrementできないんじゃない?
ちなみにprimary keyじゃなくてもできるよね。
943NAME IS NULL:2007/04/29(日) 16:31:29 ID:???
MySQL (+php) でシンプルなスレッド式掲示板の作成を試みています。

thread_t というテーブルに threadno_c と title_c というカラムがあるのですが、
スレッド一覧にスレッド作成者の名前を加えて表示させたい為、res_t というテーブルの name_c からデータを引っ張ってきて、1つのテーブルに結合したいと考えています。

しかしながら、res_t には特定のスレッドに対するレスが複数記録されている為、同じ threadno_c が重複しており、単純に 左外部結合 を行うことができません。

これを何とかする良い方法は無いでしょうか?
お知恵をいただけたら幸いです。

なお、言葉では分かりにくいので、次のレスにテーブルの状況を書かせていただきます。
944943:2007/04/29(日) 16:33:38 ID:???

mysql> SELECT * FROM thread_t;
+------------+-------------------+
| threadno_c  | title_c          |
+------------+-------------------+
|     1    | テスト書き込みスレ |
|     2    | 2cherに感謝するスレ|
+------------+-------------------+

            と

mysql> SELECT * FROM res_t;
+-----------+---------+-----------------+---------------------+
| threadno_c | resno_c | name_c        | comment_c        |
+-----------+---------+-----------------+---------------------+
|     1   |    1  | 名無しさん      | 1getするテスト      |
|     1   |    2  | 名無し         | 2getするテスト      |
|     2   |    1  | ななし         | いつもありがとう     |
+------------+---------+-----------------+---------------------+

            を結合して、

+------------+-------------------+---------+
| threadno_c  | title_c          | name_c |
+------------+-------------------+---------+
|     1    | テスト書き込みスレ | 名無しさん|
|     2    | 2cherに感謝するスレ| ななし   |
+------------+-------------------+---------+

            とする方法が知りたいです。

ご教示お願い致します。
945943:2007/04/29(日) 16:56:56 ID:???
追記です

単純に 左外部結合 ができない理由は、res_t の threadno_c がユニークでは無い (だから PRIMARY KEY の設定もできていない) からです。
けど、 "SELECT * FROM res_t WHERE resno_c=1;" とすれば、res_t の threadno_c がユニークになるので、それを利用して結合できないかな…、と考えて必死でぐぐったり
本から探してみたのですが、良い方法が見つかりませんでした('A`)
946NAME IS NULL:2007/04/29(日) 19:54:59 ID:???
受信したメールをMySQLのDBに保存しています。
From、サブジェクト、受信日は簡単に保存できます。
メールに添付されるファイル(複数あるケースも考慮)をDBに
どのように保存しておくと、アプリケーションからも
添付ファイルアクセスしやすいのでしょうか?
参考になるサイトあったら教えてください。
947NAME IS NULL:2007/04/29(日) 20:34:15 ID:???
>>943
結合後のname_cをどういうルールで取得するか決める必要がある。
 resno_c=1 のname_cで決め打つ。
 スレッドで最小のresno_cのname_cとする。
 スレッドで最大(最新)のresno_cのname_cとする。
 スレッド中の適当なresno_cのname_cとする。
948943:2007/04/29(日) 20:39:22 ID:???
>>947
回答ありがとうございます。
スレッド作成者の情報であり、スレッド作成者は必ず resno_c =1 となる仕組みになっているので、
「resno_c=1 のname_cで決め打つ。」 としたいです。
949NAME IS NULL:2007/04/29(日) 22:20:49 ID:???
>>948
threadno_c で結合して resno_c=1 で絞ればいいだけの話しじゃないの?
950943:2007/04/29(日) 22:44:39 ID:???
>>949
回答ありがとうございます。
res_t の threadno_c がユニークで無い (重複がある) ので、左外部結合を行うとエラーになっちゃうんです。
絞り込んでから結合するならできるかもしれないんですが、そのやり方がわからなくて困っています。
くだらない質問で本当に申し訳ありませんが、良い方法を教えていただけたら幸いです。
951NAME IS NULL:2007/04/29(日) 23:30:35 ID:cl05mzv8
特定の項にある全てのデータから、特定の文字列を一括削除する
って出来ますでしょうか。
具体的には、`bookname`という項に入っているデータの8割が
『●●●●●●●●』
となっているので、『』を削除したいのです。
952NAME IS NULL:2007/04/29(日) 23:48:32 ID:???
>>950
おかしい。 エラーメッセだして。

>>951
その括弧前後に文字はくっついてないんですか?
953952:2007/04/29(日) 23:51:50 ID:???
>>950 のは、恐らく ユニークとかではなく、項目名が同じで
どちらのテーブルのものか特定できない というエラーが出ていると予想。
954943: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』 にしたら解決です。
ありがとうございました。
955NAME IS NULL:2007/04/30(月) 10:21:36 ID:Vl6beltG
Aテーブル
カラムA1
カラムA2

Bテーブル
カラムB1
カラムB2

キーは使わないものとして、
カラムB2にA1の中に入っている数値+1をINSERTするにはどうゆうSQL文になりますか?
956NAME IS NULL:2007/04/30(月) 10:53:14 ID:???
>>939
mysql_install_db 実行しる
957NAME IS NULL:2007/04/30(月) 11:42:00 ID:vuvLkEdO
>>955
ちったぁ勉強もしてください
958NAME IS NULL:2007/05/01(火) 07:27:36 ID:???
AUTO_INCREMENTでIDを入れているのですが、
レコードをDELETEした場合、IDに空白があいてしまいますよね?
たとえば159というIDが空白になった場合、
157 158 160 161...という風になりますが、
160以降を1つIDをあげるみたいなことは不可能ですか?
959NAME IS NULL:2007/05/01(火) 08:10:38 ID:???
質問です
本の名前と書評をセットにして(CSVにして)コマンドでMysqlに読み込ませたんだけど、
phpでブラウザに表示確認してみたら書評部分が一つ目の改行以下がありませんでした。
どうやら最初のloadの時点で失敗してたみたいです。
ちゃんと改行を保持しつつ読み込ませるためにはcsvをどのへん気をつけたら良いんでしょう?
960NAME IS NULL:2007/05/01(火) 10:39:32 ID:???
だからおまいら質問ならIDとか環境とか書けって
961NAME IS NULL:2007/05/01(火) 10:53:07 ID:???
>>960
誤爆ですか?俺ルールですか?
テンプレに書いてないことを強要するなよ。
962NAME IS NULL:2007/05/01(火) 11:02:03 ID:???
質問主はageでID出すってのは一般的に質問系スレの
基本ルールだと思ってたんだがここでは違うの?

環境を詳しく書くのも当たり前のことだと思うんだが。

って俺釣られた?
963959:2007/05/01(火) 11:39:30 ID:7zo1GuAd
>>959
いや、なんだか下げ進行ぽかったんで上げなかったんだけど、、
環境もあんまり関係なさそうだから書かなかったです

os:winXP 鯖:apache2 で、Mysql(内部エンコード:euc)です。。
964NAME IS NULL:2007/05/01(火) 11:53:58 ID:???
GWだなぁと。

>>959
・load data の実行結果で warningとは上がってないか確かめる
・「phpでブラウザに表示確認してみたら」じゃなくてレコードのカラムレベルで確認しる
コンソール使える?
965NAME IS NULL:2007/05/01(火) 11:55:35 ID:???
>>958
リレーションの概念ってわかってる?
966NAME IS NULL:2007/05/01(火) 11:57:33 ID:???
>>962
何そのルールwwwww
967959:2007/05/01(火) 12:18:18 ID:7zo1GuAd
>>964
コマンドで確認したらやっぱり読み込んでないんですよね

CSVの作成方法は、
1、エクセルで各セルに本名と書評を書いて、書評はセル内部でalt+enterで改行
2、CSV指定して保存
というものです。保存時もEUCにあわせたし、改行コードは「変換なし」なんですが、、
どうしたら良いんでしょ? まさかエクセルの時点で、<br>とか打ち込むんでしょうか?
968NAME IS NULL:2007/05/01(火) 12:42:03 ID:???
>>967
改行つきCSVはクォーテーションを指定しないとダメ。
GWだししっかり↓読みなさい。
ttp://dev.mysql.com/doc/refman/4.1/ja/load-data.html


969さらに釣られる:2007/05/01(火) 12:44:01 ID:???
>>967
エクセルで保存したCSVをテキストエディタの文字列置換等で
全部ダブルクオート囲みのものにして、load dataの時に

ENCLOSED BY '"';

のオプションつけてみるとか。
970959:2007/05/01(火) 13:48:10 ID:???
おお、サンキュ
ありがとうございました
971NAME IS NULL:2007/05/01(火) 17:16:51 ID:T32xQBuX
エラーになってしまいます。
インサートのvaluesの中に別テーブルのカラムをmax()した値をいれたいんですがどうすればいいんでしょう?


INSERT INTO ほげテーブル(カラム1,カラム2)
values (max(別テーブル.テストカラム),1);

Invalid use of group function
972NAME IS NULL:2007/05/01(火) 18:32:21 ID:???
>>971
selectしてから入れれば委員長
973NAME IS NULL:2007/05/02(水) 08:11:39 ID:x/p7D3tO
SQL処理の速さとリソースを考えると、if分岐があるような処理をストアドプロシジャで処理するのととサーブレット側で処理するのじゃどっちがいいとおもいますか?
(SQL鯖に対するリクエストの数はどちらも同じ前提で)

974NAME IS NULL:2007/05/02(水) 09:05:01 ID:???
>>973
ストアドのリソースの取り方ははっきり知らないけど、
サーブレットよりも ネイティブな実行バイナリの
MySQLに託した方が速いとは思う。 しかも内部で全部完結するわけだし。
975NAME IS NULL:2007/05/02(水) 10:06:04 ID:cSawO+ZK
>>974
なるほど。prepareStatementとかのコンパイルでもだめなんですか・・・。
その場合の速さやリソースの差はどの程度のsecや%の差になると思いますか?
はっきりとデータがなくてもみなさんの主観と経験からの予測で結構です。
(もちろんデータの量にもよりますが、かなり大規模な構築の場合を想定したとして)

976NAME IS NULL:2007/05/02(水) 10:33:20 ID:Nv/lhVwe
すいません質問があります。

いまMy SQLをインストールしてテキストを見ながら勉強中なんですが、
構文を打った際

mysql> UPDATE shinamono SET sname = 'ハサミ' WHERE scode = 'A003';
'>

と、エンターを押しても、 '>が出てきてしまい受け付けてくれません。
構文自体はテキストの例文から持ってきたものなので間違いはないのですが、
これは一体どういった意味なのでしょうか・・・・・?

よろしくお願いいたします。

977NAME IS NULL:2007/05/02(水) 10:45:42 ID:Nv/lhVwe
追記

その後、exitやquit等のコマンドプロント自体を終了させるコマンドを打っても
'>となってしまい結局右上の×をクリックして終了させました。
で、再起動して先ほどのコマンドを打ってみたところ、問題なく受け付けてくれました。
エンターを押しても押しても
'>となってしまうのは一体なんでしょうか・・・・・?
978NAME IS NULL:2007/05/02(水) 12:41:34 ID:???
>>976
よくわかんないけど、ターミナルの改行コードがおかしくなってるんじゃない?
979NAME IS NULL:2007/05/02(水) 15:31:47 ID:???
>>976
そういう場合は '\c と入力すればクエリを中断できる。
980NAME IS NULL:2007/05/03(木) 04:11:54 ID:???
へぇーへぇーへぇー
今頃知った驚愕の事実

複数行入力時に前行のミスに気付いたらクライアント殺すしかないと思ってたよ
981NAME IS NULL:2007/05/03(木) 10:14:06 ID:???
次スレたてました。

MySQL 総合 Part11
http://pc11.2ch.net/test/read.cgi/db/1178154390/
982NAME IS NULL:2007/05/03(木) 10:32:43 ID:???
>>975
両方作ってベンチマーク
983NAME IS NULL:2007/05/03(木) 11:01:46 ID:???
>>975
どっちにしてもクライアントプログラムが条件判断するって事は、
判断後毎回SQLを送信するんだろうし、MySQLはいちいちコンパイル
せにゃならん。そのアプリ間はローカル又はネットワークとして通信も
発生もすると。  ストアドは一気にコンパイルして内部処理だから速いと思う。

10〜30%ぐらい速くなっていい様な気もするが、SQLのサイズにもよるし
ベンチ取らないと何とも胃炎。
984NAME 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 &  
ユーザー指定すると起動できます。
インストール時のユーザー選択に問題があったのでしょうか?
ユーザー指定なしでも起動できるようにしたいのでどのようにすればよいか
教えてください。
985NAME IS NULL:2007/05/03(木) 16:16:59 ID:???
>>984 my.cnf の中の設定がちゃんとなってないからでわ。
986NAME IS NULL:2007/05/03(木) 17:02:35 ID:0rgDJBYG
decimal(5,2) を、整数5桁プラス小数点以下2桁だと思い込んでプログラムを作り
さきほど 整数3桁プラス小数点以下2桁だと知りました

なのですが、このカラムには今でも「2560.00」みたいなデータが格納されており参照もできます

どちらが正しいのでしょうか?
987NAME IS NULL:2007/05/03(木) 18:51:33 ID:UsoZUQrN
MYSQLのオフィシャルのサイトの重さは何なんだろう・・・。
988NAME IS NULL:2007/05/03(木) 19:01:46 ID:???
なんで >>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 |
+------+----+
と出るよ。
989NAME IS NULL:2007/05/03(木) 21:58:13 ID:???
>>984
/usr/local/mysql/data/hostname.err に何か出てないか見てみる
990NAME IS NULL:2007/05/03(木) 23:18:24 ID:???
テーブル test_t で hoge = 3 を満たす行の数を求めたい場合には、どのようにするのが良いでしょうか?

現在は、

SELECT dummy_c FROM test_t WHERE hoge = 3;

と、わざわざダミー項目を入れて SELECT 文を発行し、最後の "5 rows in set (0.00 sec)" の部分から行数を求めているんですが、
せっかく SELECT 文を発行したのに結果を使わないのは無駄だと思うので、正規の方法が知りたいです。

よろしくお願い致します。
991NAME IS NULL:2007/05/04(金) 07:19:23 ID:???
SELECT COUNT(*) FROM test_t WHERE hoge = 3; でOK
992NAME IS NULL:2007/05/04(金) 07:20:55 ID:???
おじちゃん泣けるよw
993NAME IS NULL:2007/05/04(金) 08:49:50 ID:???
>"5 rows in set (0.00 sec)" の部分から行数を求めている



苦労してんなーーーーー
994NAME IS NULL:2007/05/04(金) 09:34:42 ID:???
   ∩___∩     /゙ミヽ、,,___,,/゙ヽ
   | 丿     ヽ    i ノ       `ヽ'
  /  ○   ○ |    / `(○)  (○)´i、  先生助けてっ!、
  | U  ( _●_)  ミ  彡,U ミ(__,▼_)彡ミ   MMORPGにMySQL使ってるんだけど人が増えたら
 彡、    |∪| ,,/   ,へ、,   |∪|  /゙       息が止まっちゃったの!!
 /  ヽ  ヽノ  ヾ_,,..,,,,_ /  '  ヽノ `/´ ヽ
 |      ヽ  ./ ,' 3  `ヽーっ  /     |
│   ヾ    ヾl   ⊃ ⌒_つ ソ ポン酢 |
│ハンゲ \,,__`'ー-⊃⊂'''''
995NAME IS NULL:2007/05/04(金) 10:02:47 ID:???
うめ
996NAME IS NULL:2007/05/04(金) 10:03:35 ID:???
うめ2
997NAME IS NULL:2007/05/04(金) 10:04:07 ID:???
うめ3
998NAME IS NULL:2007/05/04(金) 10:04:40 ID:???
うめ4
999NAME IS NULL:2007/05/04(金) 10:05:10 ID:???
うめ5
1000NAME IS NULL:2007/05/04(金) 10:06:12 ID:???
ありがとうございました
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。