4 :
NAME IS NULL:2006/08/18(金) 06:54:40 ID:hlgu37B7
質問です。
insertやupdate時にnow()で挿入/更新されたdatetimeの値を
select文を発行することなく取得する方法は無いでしょうか?
auto_incrementのmysql_insert_id()に相当するようなものがあることを
期待しているのですが。
>>4 たぶん無理
何がしたいかを書けば解決策はあると思うが…
アプリ側で現在時刻を取っておいてそれをINSERTするか、SELECT now()してINSERTしかないんじゃないかな
7 :
前スレ983:2006/08/18(金) 12:21:40 ID:???
前スレ
>>996さんへ
以下のようなクエリを試してみましたが、やはりindexが使用されていないようです。
EXPLAIN SELECT `diary_ID`
FROM new_comment
WHERE `diary_owner_ID` = '1'
AND (
`commenter_ID` < '1'
OR `commenter_ID` > '1'
)
ORDER BY `timestamp` DESC
LIMIT 7
>>7 だから、複合インデックス作って試せっていったじゃん。バイバイ。
InnoDBでレコード数6千万を超えているテーブルがあります
フィールドは12 UTF8形式
全文検索のためにMyISMA+Sennaに変換しようと思うのだけど
これって通常、アリなことでしょうか?
>>
レコード数的な問題の前に、sennaって確かMyISAMのみ。
InnoDB はダメ。
>>10 そうですが、InnoDBの方が性能は上と言われ
全文検索のためにMyISAMに変更というのは
俗に言う、性能ダウンをするということなので
DBマスターの皆さんから見るとこれはアカンと思うのではないかと・・・
それならInnoDB+( )を使って外部ツールを使えというアドバイスはあるものなのでしょうか?
多分、クエリも見直さないといけないし
6000万のレコードにちりばめられている日本語に文字化けがないか調べないといけないし
胃が痛くなる思いです
>>9 あ、MyISAMに変換する腹積もりなんだね。
比べ物になるかわからんが、500万レコードなら経験あるけど一瞬でクエリ出る。
sennaは2億ぐらいまではOKみたなので要件的にもOK。
ぜし、やってみてパフォーマンスレポートをここに求む。
MySQL 日本語リファレンスマニュアル
を読んでいるのですが、
これは全部読み終われば一通りMySQLを使えるようになりますか?
4章まで読みましたが、さっぱり理解できず先行き不安・・・
>>13 全部読んでもさっぱり理解できないのなら無理
はじめからリファレンスマニュアルなんか読んでも頭に入らないでしょ
個人の作った解説サイトでもみれ
>>12 人柱ですか(涙
sennaは理論上2億6000万ですからOKでしょうが、なんせ、ひろゆき会社だからなw
まずは移行できたら、報告します
パフォーマンスレポートはgdやJGraphを使ったグラフ形式がいいのかわかりませんので
17 :
4:2006/08/18(金) 19:18:21 ID:???
>>4です。
>>5-6 レスありがとうございます。あったら便利だしひょっとしたらあるかなと思ったのです。
#mysql_insert_datetime()とかで返してくれればいいのになあ。。
やりたいことは
1.ユーザがデータをPHPスクリプトにPOST
2.受けたPHPスクリプトが入力データをテーブルAに格納
3.insertされた情報(auto_incrementのIDや登録日時を含む)を
盛り込んだ別データを生成
4.生成した別データをテーブルBに格納
というものです。おっしゃる通り登録後にselectで取得したり、登録時刻自体を
スクリプトで生成すれば解決できるのですが、何か二度手間をしているような
気持ち悪さがあったので質問させていただきました。
>>14-15 レスありがとうございます。
>はじめからリファレンスマニュアルなんか読んでも頭に入らないでしょ
>個人の作った解説サイトでもみれ
そうですよね!どうもありがとうございます。
自分が大馬鹿だから理解できないのかと思ってました。(実際そうですが)
まずは個人の解説サイトからはいっていきます。
>>17 update hoge set date=(@T:=now());
select @T;
取り出すのに select使うけど DBアクセスは無いから速いかも。
>>11 いまは MyISAM より InnoDB のほうが速いの? ほんとに?
21 :
4:2006/08/18(金) 22:24:37 ID:???
>>19 そのやり方は知りませんでした。
さっそく使ってみます。ありがとうございます。
>>7 >`commenter_ID` < '1'
> OR `commenter_ID` > '1'
これってさ、なんでシングルクォートで囲んでるの?
数値をこんなことしていんだっけ?
>>22 いいんだよ。
っていうか、むしろ囲んだほうがベター。
グリーンだよ。
25 :
NAME IS NULL:2006/08/19(土) 22:09:56 ID:D+Qyk0yf
MySQLをコマンドラインで操作する際、
tabキーでテーブル名の補完ができると
本に記述されているのですが、
自分のMySQLでは何も反応しません。。
この機能ってどのいじれば使えるんでしょう??
ちなみに環境は
FedoraCore5
MyQL 5.0
Bash 3.0
です。
26 :
NAME IS NULL:2006/08/20(日) 12:16:34 ID:HFAIbdvR
最近mysqlをはじめてみたんだけど
二バイト文字がinsertされないっ!
プロンプト直打ちなら大丈夫なんだけど
perl経由で
$sth = $dbh->prepare("INSERT INTO member (a,b,c)VALUES ('う','ん','こ')");
としてもダメなんだ。半角英数字ならいけるんだけども。
教えてください。エロイ人。
28 :
うんこ野郎:2006/08/20(日) 19:32:18 ID:HFAIbdvR
$sth = $dbh->prepare("INSERT INTO member (a,b,c)VALUES ('u','n','k')");
半角英数字ならinsertできるんだが
二バイト文字だとinsertされないということなんだ。
>>28 「されない」じゃねぇだろ!エラーぐらい書け、糞野郎。
30 :
糞野郎:2006/08/20(日) 20:52:15 ID:HFAIbdvR
エラーがでないわけだが。
環境ぐらい書け、ビッチ野郎。
>>30 Perlスクリプトの文字コードとMySQLサーバの文字エンコーディングを
調べてみなさい糞坊や
1バイトしか入らないフィールドだったりして
34 :
ビッチ野郎:2006/08/20(日) 21:34:12 ID:HFAIbdvR
環境は
perl5.8
mysql5.0.24
windows xp
35 :
糞坊や:2006/08/20(日) 21:37:31 ID:HFAIbdvR
フィールドはcharで50バイトで設定
perlスクリプトはsjis
mysqlのmy.iniもsjis
↑これ以外に設定するところがあれば教えてくだしあ
36 :
糞坊や:2006/08/20(日) 21:41:08 ID:HFAIbdvR
コマンドで直打ちした日本語部分が
かねやんMySQLAdmin1.43[sjis版]
で日本語が???になってる
サーバーの設定がやはりおかしいのだろうか。
37 :
糞坊や:2006/08/20(日) 21:44:23 ID:HFAIbdvR
my.iniの設定
[mysql]
default-character-set=sjis
これでいいんだよね。他にも設定場所があるんかな
>>37 [mysql]のdefault-character-setをsjisにしてどうするんだ
[mysqld]で指定しなけりゃ意味ないだろ糞坊や
39 :
糞坊や:2006/08/20(日) 22:06:55 ID:HFAIbdvR
[mysqld]
default-character-set=sjis
ごめんお、書き漏れてた。
mysqldも設定はこうなってる。
なんでだよー
>>39 ならばPerlで、insert文発行する前に
set names sjis を発行してみたらどうかね?
つまり
$dbh->prepare("set names sjis");
$dbh->prepare("INSERT INTO member (a,b,c)VALUES ('う','ん','こ')");
こうしてみるとどうなる?
41 :
糞坊や:2006/08/20(日) 22:14:30 ID:HFAIbdvR
ありがと。
いまから試してみるお
42 :
糞坊や:2006/08/20(日) 22:25:56 ID:HFAIbdvR
半角英数字はOK
全角文字はNG
だめですた。
全部のコードをEUCにしろよ、蛸坊主
44 :
蛸坊主:2006/08/20(日) 23:37:56 ID:HFAIbdvR
明日、EUCで試してみます。
今日はありがとうございました。
おやすみなさい。
45 :
NAME IS NULL:2006/08/21(月) 01:36:21 ID:VybCRsL9
http://dev.mysql.com/downloads/mysql/5.0.html のLinux (non RPM package)
Linux (x86, glibc-2.2, "standard" is static, gcc)と
Linux (x86)の
違いはどのような点でしょうか?パフォーマンスや機能に違いはありますか?
マニュアルに記述が無い様なんですが。
ちなみに、Linux (x86, glibc-2.2, "standard" is static, gcc)では
phpの./configure --with-mysqlが失敗して原因が分からずハマりました(FC5)。
Linux (x86)ではconfigureが通りましたが。
まーた始まった
47 :
NAME IS NULL:2006/08/21(月) 02:16:56 ID:kPEGA5wc
【就職】「中韓などアジアの優秀な人材を、もっと日本企業に」 留学生2000人に無償奨学金月20〜30万円…経産省・文科省[08/20]★7
1 :試されるだいちっちφ ★ :2006/08/21(月) 00:42:25 ID:???0
★アジア留学生に奨学金、日本で就職促す 2千人に国支給
中国、韓国などアジア諸外国の優秀な人材に、日本企業にもっと入ってもらおうと、
日本の大学で学ぶ留学生への無償奨学金制度を07年度から経済産業・文部科学
両省が始める。大学・大学院に、採用意欲のある企業と提携して、留学生向けの専門
講座やビジネス日本語講座などの2年間の特別コースを新設してもらい、その受講生
1人あたり、住居費分、学費免除分、生活費など月計20万〜30万円相当の支給を
検討中だ。支援対象は約2000人を想定している。
特別コースは企業の中核を担える人材の育成が目標で、電機・IT業界、環境関連
産業など特定分野の企業群と提携し、それらのニーズにあった専門性の高い授業を
想定。また、留学生の日本企業就職率が伸びない理由となっている、日本語の力不足
や企業風土の特徴をあまり知らないことなどを解消するため、特別コースには実用性
の高い日本語会話の授業や日本の企業文化などを教える授業のほか、インターンシップ
制度も盛り込んでもらう。両省が授業内容を審査し、奨学金制度を適用するかどうか
決める。
両省は関連予算として07年度予算の概算要求に約60億円を盛り込む方針。この中
には、同じ目的で、既存の国費留学制度を使っている留学生らが無料参加できる就職
支援プログラムも加わる。
経産省によると、04年度は約3万人の留学生が日本の大学・大学院を出たが、日本
国内で就職した留学生は約5700人にとどまった。留学生支援策の拡充で、アジアの
優秀な人材の定着を増やそうとしている。
朝日新聞 2006年08月20日06時24分
http://www.asahi.com/job/news/TKY200608190397.html 前スレ(立った日時:2006/08/20(日) 07:02:40)
http://news19.2ch.net/test/read.cgi/newsplus/1156074203/
中韓人イラナイ
質問です。MYSQL+phpMyAdminを使用しています。
サーバーを借りていて引越しのためデータを
旧サーバーからSQL文でエクスポートしたのですが
150M程あるので新サーバーでインポートしようとすると
phpMyAdminのインポートの制限?が2M程しかないので
インポートできない状況です。
なんとかDBの移転を実行するには
旧サーバにSSHでsuでrootになりMYSQLにログインして
mysqldump -u root -x --all-databases > dump.sql
で、その後ftpか何かでdump.splを捜し出して旧サーバからDL
新しいサーバで任意の場所に 例えば /home/html/
とかにdump.sqlをUPして
新サーバにてSSHでsuでrootになりMYSQLにログイン
mysql -u root -p < /home/html/dump.sql
であってますでしょうか?
>>49 まずなぜDBファイル直で引っ越さないのかを教えてくれ。
Answer: I didn't know such a method.
mysqlのライセンスについて質問です。
(結局のところ、GPLについてなのですが…)
とある入力データをMySQLに格納&検索を行うフリーソフトをVisualC#で開発中。
利便性を考慮して開発したAPとMySQL5.0&Connector/Net1.0を併せて配布したいです。
ただし、開発したAPのソースは公開したくない。
(MySQL&Connector自体のソースは変更しない。)
この場合は以下の@〜Bのどの方法を適用すべきでしょうか。
幾つかのサイトを当たったのですが、明確な回答が得られませんでした…
ソースを改変しなければ、ソース付きバイナリの再頒布は自由と考えて大丈夫なのでしょうか。
@ 同じZIPファイルにまとめて、APのインストール時にMySQLと
Connectorのインストーラを起動する。
A 一緒に配布するが、インストーラは各個人で起動してもらう方法。
B 配布しない。各個人でMySQLのサイトからダウンロードしろと。
http://www.gnu.org/licenses/gpl-faq.ja.html よろしくお願いします。
>>50 apacheもphpもmysqlも全部バージョンが違うし
そもそもどのフォルダのどこまでを移動していいのかがわかりません
>>54 DBの位置もわからず良く運用できるなぁと感心。
うーんと show variables like 'datadir'; で確かめられる。
apache、php のバージョンって全く関係ない。
mysqlのバージョンの違いには多少の留意が必要だがオレの経験では3.xから4.x
程度なら大丈夫。最悪repairすれば動く筈。というかチャレンジする姿勢が大事。
57 :
55:2006/08/22(火) 21:28:22 ID:???
>>56 linux←→win で経験あるけど全く問題なし。
3.23->4.0は問題ないが、4.0->4.1には大きな壁がある。
リナウィンって同じ32ビットCPU同士ってだけでしょ。
64ビットは簡単には無理だよ。
再配布して、自社製品的に扱うならABからライセンス買わないと。
それがオープンソースのビジネスモデルです。ただで儲けさせてくれるほど甘くはない。
mysql開発者の生活は保証する必要が有るし、その飯の種がライセンス。
phpMyAdminを常用してる時点でスキルが足りない。
GUI付きのSQL鯖に帰ったほうがいいよ。
普段バックアップも満足にしてなかったでしょ?
eucもsjisも捨てたほうがいいよ。
utf8で統一したほうが、文字コード変換も無いからトラブル皆無。
文字コード変換が絡むと、どのレベルで文字変換して問題が発生するのか切り分けが面倒。
>>45 パフォーマンス気にするなら、自分でコンパイルした方が良いよ。
glibc-2.2は古いから、FC5だと古いglibcが無い予感。
staticだから平気か?
phpのconfigureの前に、mysqlとかは動きます?
たぶんGLIBCなんたらって出るんじゃないかな。
待望の姉歯マンションに引越し。
朝、起きたらパロマの湯沸かし器でシャワーを浴びる。
朝食には雪印の牛乳を欠かさない。
ドコモのケータイでメールをチェック。
ナショナルFF石油式暖房機で温まってから、
シンドラー社製のエレベーターで玄関へ。
三和シャッターの前を通り、三菱ふそうのバスに乗る。
乗り換えはJR西日本の207系。
空港からはJALの飛行機で出張。
東京での移動では、東急東横線の駅員に切符の買い方を尋ねる。
午後は東武の踏み切りを渡って、ふじみ野市営プールで子供を泳がせる。
夜遊びはセガのジョイポリスで。
あなたも満喫しませんか。
エンジョイ・スリリングライフ。
>>63 つ もちろん毎日のメールチェックはマイクロソフトのアウトルックで楽々。
も付け足しとけ。
スレッドタイプの掲示板群を作る場合、どんなテーブルの構成が一番いいのでしょうか??
今考えているのは
1ジャンルごとに1テーブル
すべて1つのテーブル、bbs_seqでジャンル分け(DB掲示板ならbbs_seq = 2など)
です。
皆さんならどんな構成にしますか?
hoshu
>>65 あんたのスレッド構成の前に投げるスレッドを良く考えてくれ。イタチ君。
69 :
65:2006/08/23(水) 16:28:39 ID:???
ここMySQLの総合スレですよね?
じゃああってますけど何か?
>>69 あってない。
MySQLの話じゃねーだろ。
71 :
65:2006/08/23(水) 16:44:28 ID:???
mysqlの「総合スレ」ですよ
確かに最初は書いていなかったので分かりにくかったかもしれませんが
mysqlにおいて最適な構築法を聞いているのだからここでいいですよね?
それともこういうことはオラクルのスレで聞けばいいんでしょうか?
>>65俺は1にする
すべての掲示板が一緒のテーブルというのはあまりよろしくない
大変でもガンガレ
>>72過疎ってるんだから細かいこと気にするなよ!
おまえみたいに細かいやつは嫌いだ
>>65>>73 スレッド型=2ch型とでも思ってるのかな…?
相変わらずMySQL関係ねーし
>スレッドタイプの掲示板群
だから2ch型なんじゃね?
まあスレッド型=2chという発想はどうかと思うが
>皆さんならどんな構成にしますか?
他人に丸投げしようとしてるようにしか見えん
試行錯誤してからでも遅くないだろ
スレッド型といえば ASCII NET とか mmm じゃないの?
>>76 ひねくれ過ぎ
過疎ってるんだからまった〜りいこうよ
hogeとかageとかうぜー
荒らしたいだけじゃん
80 :
58:2006/08/24(木) 00:30:23 ID:???
>>61 4.1からカラム,テーブル,データベース毎に文字コードを指定できるようになった。
4.0まではchar(n)はnバイト。4.1からはchar(n)は (そのcharsetの1文字の最大長バイト)*n バイト。
その影響で、4.0 euc-jp char(10) のテーブルデータを 4.1 に持っていくと勝手に char(3) に置き換えられる。
euc-jpは1文字最大3バイトなので、10バイトには3文字しか入らないので。
おかげで、そのカラムには ASCII 文字であっても 3文字までしか入らなくなる。
こんな感じでよろしいか?
>>80 つまり4.1以降では、char(3)って定義すると、
それは文字コードにに関わらず3文字分ってこと?
82 :
58:2006/08/24(木) 09:17:46 ID:???
>>81 そうです。その前提の説明が抜けてた。ごめん。
83 :
58:2006/08/24(木) 09:21:58 ID:???
もうひとつ。
4.0まではサーバのcharsetがujisで、クライアントのcharsetがlatin1でもテキトーに
なんとかなっていたが、4.1からはサーバ側で勝手に文字コードの変換を試みるので、
今まで動いていたプログラムがとたんに文字化けするようになる。
サーバのcharsetはmy.cnfでいじれるけど、クライアントの方はプログラムを
charsetを可変にできるように作ってないとNG
おまんこSQL
85 :
61:2006/08/24(木) 11:22:34 ID:???
下記のような表を入力して表示させるには、どのような手順で行えばいいのでしょうか?
ご意見よろしくお願いします。
商品コード商品名売上コード 売上伝票
110 あ 210 え
111 い 211 お
112 う 212 か
すいません、左に詰めすぎました…。
88 :
61:2006/08/24(木) 13:03:11 ID:???
89 :
65:2006/08/24(木) 16:18:19 ID:???
どなたかお願い致しますm(_ _)m
>>88 入力をして、実行結果を表示させたいのです。
>>86 >どのような手順で行えばいいのでしょうか?
手順1:入力する
手順2:表示させる
>>89 あまりに淡白な質問なのでこちらも淡白に答えてみる。
・手順1:入力する insert into hoge values(.....);
・手順2:表示させる select * from hoge;
>>60 ダウンロードページに
For maximum stability and performance, we recommend that you use the binaries we provide.
とあるからバイナリにしたんですが、ソースからコンパイルした方がパフォーマンスはいいんですか?
どちらのバイナリもFC5で動作するようです。ただ"standard"の方はphpのconfigureが通りませんでした。
結局はglibcというもののバージョンの違いということでしょうか。
あとなんとなくですが、phpもmysqlもFC5のパッケージは使いませんでしたが、これらはどうなんでしょう。
95 :
NAME IS NULL:2006/08/25(金) 02:14:40 ID:MN2RS3yj
2chをブラウザで見たときのような 前100 次100 をPHP+mysqlでやりたいのですが
どうやったらいいかわかりません。
スレッドのデータはDBに格納してあります。
くだらない質問ですみませんが、どなたかお教えいただけると感謝感激雨あられです。
mysql offsetでぐぐれ
後は自力でどうぞ
97 :
NAME IS NULL:2006/08/25(金) 03:40:07 ID:rgXmdUMm
すみません、ど素人な質問ですがよろしくお願い致します。
no uid visit_id year month day timestamp
1 35 1 2006 8 20 1156044334
2 1 31 2006 8 25 1156437877
3 1 33 2006 8 25 1156440499
4 31 1 2006 8 25 1156441495
5 31 32 2006 8 25 1156442959
6 31 1 2006 8 25 1156442961
7 35 33 2006 8 25 1156443005
8 35 1 2006 8 25 1156443007
9 35 1 2006 8 25 1156443342
上記のようなテーブル構成でデータが入っているとき、
「同じ年月日の中で、visit_idで同じ値をまとめて、
それぞれのtimestampが最も大きいレコードのuid(またはno)」
を、抽出したいと考えています。
たとえば、visit_idが「1」のとき、「no」が「1」と「6」と「9」のレコードを得たいです。
それで
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
ORDER BY `timestamp` DESC
だと、
「no」が「9,8,6,4,1」のレコードが得られます。
ここまでは想定通りです。
ここで、「uidが重複しているレコードのうち、timestampの値が小さいほう」を除外すれば、
抽出したくないレコード(「no」が「8と4」のレコード)を含まず、
当初の目的である、「no」が「1,6,9」のレコード だけが得られるはずです(…よね?)
そこで、
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
GROUP BY `uid`
ORDER BY `timestamp` DESC
と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「8と4」のレコードでした。
「no」が「8と4」のレコードを得るのではなく、
逆にこれを除外して「no」が「9」と「6」と「1」のレコードを得たいと
思っていたのに、まったく正反対の結果になってしまいます。
正しい結果を得るには、どういうSQL文を発行したら良いのでしょうか?
98 :
97:2006/08/25(金) 03:47:42 ID:rgXmdUMm
すみません、訂正です。
>と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「8と4」のレコードでした。
誤:得られる結果は「no」が「8と4」のレコード
正;得られる結果は「no」が「4と1」のレコード
の間違いでした。
最終的に「no」が「9」と「6」と「1」のレコードを得たいというのは同じです。
分かりにくい質問で恐縮ですが、どうかよろしくお願い致します。
freeBSD5.4でMySQL5.0を使いはじめましたが
ディスク容量が /var 4G /home 64G の為
MySQLのdataの格納を /home にて行いたいのですが
デフォルトでは /var に格納されてしまっているようです。
/home にて運用するには /var/db より /home/db にシンボリックリンクをはる
とか MySQL自体を /home にreinstallするとかの方法があるような気がしますが
はたして出来るのか?また出来るのであればどちらがスマートな方法なのか
又、その詳細な方法を教えていただけるとありがたいです。
エロい人よろしくお願いいたします。
100 :
99:2006/08/25(金) 04:50:31 ID:???
シンボリックリンクでいくとするなら
shell> mkdir /home/db
shell> ln -s /home/db mysqld-datadir
これでオケですか?
101 :
99:2006/08/25(金) 05:16:17 ID:???
ん?
/etc/my.cnf に
[mysqld]
datadir=/home/db
って記入するだけでいいのか!?
>>99 FreeBSDでportsで入れてるなら /etc/rc.conf か rc.conf.local に
mysql_dbdir=/home/db とか書けばいいんじゃないか。
103 :
NAME IS NULL:2006/08/25(金) 11:58:18 ID:0tew6HGv
csvデータを取り込みたくload data 〜を使いたいのですが1カラム目は主キーにしたい為
1カラム目は飛ばして2カラム目からデータを流すようにはできませんでしょうか??
104 :
97:2006/08/25(金) 12:52:31 ID:rgXmdUMm
SQL質問スレのほうが適切かと思って移動しました。
105 :
65:2006/08/25(金) 13:16:06 ID:???
どなたかお願い致します m (_ _) m
106 :
NAME IS NULL:2006/08/25(金) 13:49:38 ID:MN2RS3yj
$sql="select * from table1 limit '$l',30";
これでエラーが出てしまいます。
テーブル名には変数が使えるけど、limitには使えないのでしょうか
107 :
NAME IS NULL:2006/08/25(金) 13:50:27 ID:0tew6HGv
>>106 解決です。
$sql=sprintf("select * from table1 limit %d, %d", $l, 30);
>>97 長いので斜め読みだが、group by で選ばれるレコードを限定することはできない。(と思う)
が、group by でチョイスされた複数レコードの中から最大カラム値の取得は可能。
SELECT no,uid,year,month,timestamp,max(timestamp) as max_timestamp
FROM テーブル
WHERE visit_id='1'
GROUP BY uid
ORDER BY max_timestamp DESC;
110 :
97:2006/08/25(金) 19:31:57 ID:rgXmdUMm
>>109 私もそのようにMAX関数を使ってやってみたところ、
たしかにtimestampのカラムは期待通りの値が得られるのですが、
なぜか別のレコードのnoが返ってきます。
具体的には、
SELECT `no`, MAX(`timestamp`) AS `timestamp`
FROM テーブル
WHERE `visit_id`='1'
GROUP BY `uid`
ORDER BY `timestamp` DESC;
というクエリを実行すると、
no timestamp
1 1156443342
4 1156442961
という結果が返ってきます。
しかし
>>97でのテーブル・データを見ていただければ分かりますように、
timestampが「1156443342」の時はnoは「9」のはずなのに、なぜか「1」になっています。
また、timestampが「1156442961」の時はnoは「6」のはずなのに、なぜか「4」となっています。
すなわち、SELECT結果のnoとtimestampは、
それぞれ別々のレコードからの値が混じってしまっているのです。
これはどうしてなのでしょうか??
本編とは関係ないところへのツッコミだけど、as で指定する別名って既存の列名と被って大丈夫なん?
あと、列名を"`"で括ってるのは何?
いらなくね?
>>111 カラム名をバッククォートで囲んでおかないと、
予約語などとカブったときに動作がおかしくなる。
囲んでおくと間違いなくカラム名だと認識されるから安心。
あとas指定はカブってもOK。
113 :
109:2006/08/25(金) 20:10:06 ID:???
>>97 2度目だが、group by で選ばれるレコードを限定することはできない。(と思う)
が、group by でチョイスされた複数レコードのカラムを maxや minなどで集計することは可能
と言っただけ。
114 :
109:2006/08/25(金) 20:37:59 ID:???
>>97 「group by は頭にあるユニークレコードを返す」という仮定のもの
以下の query書いてみた。何だか動いているよだが自信なし。
SELECT * FROM
(SELECT * from テーブル WHERE visit_id='1' ORDER BY timestamp DESC) hoge
GROUP BY hoge.uid;
115 :
97:2006/08/25(金) 22:28:26 ID:rgXmdUMm
すいません、いろいろ試行錯誤してみたところ、以下のようなクエリで
期待通りの結果を得ることが出来ました。ありがとうございました。
SELECT MAX( `no` ) AS `no` , `year` , `month` , `day` , `uid` , MAX( `timestamp` ) AS `timestamp`
FROM テーブル
WHERE `visit_id` = '1'
GROUP BY `uid` , `year` , `month` , `day`
ORDER BY `timestamp` DESC
linuxで問題なく使える漏れは勝ち組。
117 :
99:2006/08/26(土) 05:07:51 ID:???
118 :
NAME IS NULL:2006/08/26(土) 10:16:30 ID:qxaqygPk
全文検索のブールモードで、
検索語の中に演算子(+や-)が含まれている場合は
どうしたらいいのでしょうか?
119 :
NAME IS NULL:2006/08/26(土) 10:31:52 ID:qxaqygPk
""で囲めばいいだけですた
すみません
あるテーブルに付けられた外部キーの名前を確認したいですが、
どうすれば出来るのでしょうか?
show creta table テーブル名 とか?
122 :
NAME IS NULL:2006/08/27(日) 08:20:27 ID:UpElkVtW
MYSQLにおけるSQLの質問です。
条件にHITする1件目と最後のx件を同時に取得したい場合、
一度のSQLで取得可能でしょうか?
例えば2chのような掲示板があり、スレッド番号で検索をかけると
記事番号1から最大で1000まで抽出されるとして、結果の全てではなく1件目と
最後の50件を取得したいのです。
今の私の知識だとまず
select * from 掲示板 where スレッド番号=x and 記事番号=1
で一件目を取得し、次に
select * from 掲示板 where スレッド番号=x and 記事番号>1 order by 記事番号 desc limit 0,50
で一件目を除く最後の50件を取得し、スクリプトで一件目の結果とくっつけるという
非常にわずらわしいコードになってしまっています。しかも二度目に取得するレコードは
記事番号の逆順で、それもなんだか気持ち悪いです。
よりスマートな方法がありましたらよろしくおねがいします。
123 :
122:2006/08/27(日) 08:21:48 ID:UpElkVtW
すいません、↑のlimit 0,50 は limit 0,49 の間違いです。
>>122 俺ならスレッドテーブルとスレッド明細テーブルにするなあ。
スレッドテーブルには現在記事番号、1の内容、名無しさんのときの名前、1000超えたときの
テキストなんかを登録して。明細読むときは現在記事番号-50からとかにすれば
たぶん高速に取得できるとおも。
l50が仕様なら、書く時にl50に成る様にテーブル作って格納するとかね。
l50とは限らないなら、1000全部取得して一定時間保持するアプリケーション鯖を動かす。
php/perlとかじゃ厳しいけどな。
126 :
蛸坊主:2006/08/27(日) 11:30:44 ID:I2j21E7K
以前こちらのスレでお世話になりました
蛸坊主です。
おかげさまで、無事MySQLを使えるようになりました。
今は練習がてらperlと連携したスレッド型BBSを製作しています。
perlのみの時は<>で区切ったテキストで管理していましたが
MYSQLを組み合わせることによって
抽出やソートのコード書く手間は省けるわ、処理時間は早いわ
猛烈に感動しております。すげぇよすげぇよぉおおおおおおおおおおおおおおおおおおおおくぁw背drftgyぜにがたlp;@:
またわからないことがあったら質問しにくることがあるかもしれませんが
そのときはよろすくです。
127 :
NAME IS NULL:2006/08/27(日) 15:24:54 ID:9FxI9XgK BE:5529942-2BP(17)
/home/*において、ユーザー*のquota制限をかけているんですが、
そこにMySQLの*ユーザーの所有するDBも/home/*の容量と合算して
quota管理する方法がどうしても見つかりませんでした。
どなたかわかる人いないでしょうか?
128 :
NAME IS NULL:2006/08/27(日) 17:05:58 ID:CovlgFQJ
2chのdatログをデータベースに流し込みたいのですが、$datetimeだけ流し込めません。
$data=array();
$data=explode( "<>", mb_convert_encoding($line,"EUC-JP",mb_detect_encoding($line)));
$datetime='.$data[2];
$sql="INSERT INTO `thredate` (thread,res_num,name,mail,datetime,res)
VALUES(".intval($thread).",".intval($res_num).",'".addslashes($name)."','".addslashes($mail)."','".$datetime."','".addslashes($res)."')";
$datetime以外のデータはちゃんと入ってます。
$datetimeを何かエンコードしなけりゃいけないんでしょうか?
どうかお教えください。
>$datetime='.$data[2];
まず「='.」ってのがありえないし。
それと、なぜ「addslashes」なんて使ってるんだ?
どうせなら「mysql_escape_string」を使えよ。
130 :
NAME IS NULL:2006/08/27(日) 19:40:06 ID:CovlgFQJ
>>128 あああ、削るとこ間違えてました。三行目は
echo '<hr>$datetime='.$data[2];
です。
echo 〜では表示されるのに、どうしてなんだか・・・
mysql_escape_stringも調べてみます。ありがとう
>>130 三行目がそれなら、その前に$datetimeに値を代入するための行が足りないじゃんか。
2つのキーをあわせて一つの主キーとして扱うことは出来ないのでしょうか?
133 :
NAME IS NULL:2006/08/27(日) 20:46:28 ID:CovlgFQJ
>>131 はしょりすぎましたかね。
とりあえず$datatimeに値はわたっています。
はしょらずにどれを載せればいいのかわからないのですけど、どうしたらいいでしょうか。
代入するところやテーブル定義書けば?
怪しいところばかりピンポイントで端折ってるから何もわからん
>>132 "mysql 複合キー"でググれ
>>133 この手の不具合ってのは、たいてい開発者のしょうもない勘違いやミスが原因。
だから、勝手な判断でソースを端折ったりしないで、関係する部分を全部出すべき。
ま、一番怪しいのはテーブルのdatetimeカラムの名前や項目型だけどな。
136 :
NAME IS NULL:2006/08/27(日) 22:13:28 ID:CovlgFQJ
137 :
NAME IS NULL:2006/08/27(日) 22:16:37 ID:CovlgFQJ
ムムム。varchar(100)ではだめなんだろうか。
あと流し込むログも必要な気がしたので書いておきますね。
名無しさんの野望<>sage<>日付ID<> レス内容
>>136 だからさ、$datetimeに値が代入されていないって言ってんだろうが。
っていうか他にも$mailとかいくつかの変数に値が代入されてない。
なぜお前は
>>131の指摘を無視するんだ?
>とりあえず$datatimeに値はわたっています。
・・・って、バカかお前は。
echo '<br>$datetime='.$data[2];
で表示されてるのは$data[2]の値であって、$datetimeの値ではないぞ。
人様の指摘を無視して自分の間違った思い込みを優先するんなら、質問なんかする資格ないよボケ。
うわぁ、ほんとにすみません。ご迷惑をおかけしまして誠に申し訳ございません。
皆様の貴重な時間を割いて頂いて、これは吊ってくるしかないです。
ほんとうにすみませんでした。
うほっ
代入してないじゃん
これじゃDBに入るわけなす
echoで$datetimeそのものを表示しなきゃデバッグにゃならんよ
あと日付入れるのにvarchar(100)なんて要らんよ
書式決まってるデータなんだしdatetime型使えばよし
おと、レスが一足遅れた
mysqldがユーザ権限で動かないと、ユーザに設定したquotaは意味がない。
ユーザに設定したquotaがmysqlユーザで起動したコマンドに効くと思うのか?
幸いmysqldのソースは公開されてるから、quotaの値を見る様に改造したら?
GPLだから弄ったソースはどこかにうpするように。
>>143 そんなことより涼宮ハルヒの憂鬱のDVDを買ったほうがいいんじゃないか?
>>143 >GPLだから弄ったソースはどこかにうpするように。
バカかお前は。
試してないが、
データベースのオーナーをユーザにして
グループをmysqlにして
グループに書き込み権を与える
ってのはどうかな。
700万行ぐらいのテーブルに対して
SELECT * FORM 700万行ぐらいのテーブル;
と、やってしまいました。
本当はWHEREなんとかと付け加えたかったのですがボケてました。
一時間ぐらいまっても止まる気配がありません。
どうすればいいでしょうか・・・orz
サーバの管理権限持ってればプロセスを殺せばよし
レン鯖だったら会社に連絡して止めてもらえ
既にある行にNOT NULLを指定することは出来ないのでしょうか?
>>149 "mysql alter table"でググれ
ここはアニメヲタの巣窟ですね。
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
データベースを選択した際にこれがでるようになりました。
一体これはどのような意味なのですしょうか?
>テーブルとカラム名のテーブル情報テーブルを読んでいます
>この機能を無効にするにはクイッカースタートアップ(?)で-Aをつけてください
下手なりに訳すとこのような意味なのでしょうか?
一体、何をしているのですか?
分かる単語だけを繋げればそういう訳になるのかも知れんが。。。
意味はわからんが、それっていつでも出るんじゃないの?
readlineの補完情報の先読みだとおもう
ふーん、後付け理由ってのは面白いもんスネ....
今年初のハリケーンに発達した「アーネスト」は熱帯性低気圧に勢力を弱めたほか、
進路も石油精製施設が集中するメキシコ湾岸からそれるとの気象予報が伝わった。
これを手掛かりに原油先物相場が1バレル70ドル台に下落した。
>>157 でもここでイラク進攻になったりすると100ドルの大台突破の可能性もあるらしいですよ
あるテーブルの1つのカラムにインデックスを付けました。
後にデータを追加した場合、追加した分にもインデックスを付けるためにはどうすればよいのでしょうか?
いままでoptimize tableがやっているのだとばかり思っていたのですが、そうではないようで!?
それとも何もしないで追加分もインデックス化されるのでしょうか?
>>159 そりゃもちろん更新・追加が入るたびにインデックスも更新されるので心配後無用。
161 :
NAME IS NULL:2006/08/29(火) 17:17:05 ID:cG9zGaSa
select * from member_table WHERE mail like …@….com and pw like ・・・・
で検索した場合エラーがでます。
AND せずにメールだけPWだけで検索した場合は上手くいきます。
構文おかしいですか?
なぜエラーメッセージを書かないのか。
なぜベストを尽くさないのか。
164 :
159:2006/08/29(火) 22:40:07 ID:???
>>160 ありがとうございます。
心配しないことにしました。
>>147 mysqladmin kill
さすがにもう止まってると思うけど
たまに、SQLの実行時間が長い事を自慢する奴がいるから、まだ動いてるかもよ
原油需要減退スカ....
午前中に調査会社コンファレンス・ボードが発表した8月の米消費者信頼感指数が
市場予想を大幅に下回ったことで、米景気減速に伴う原油需要減退の思惑も強まった
という。10月物は節目の70ドル下回ると損失覚悟の売りなども巻き込み、一時は
69.30ドルと期近物では6月21日以来の安値水準を付けた。
クックック
石油の先物やって値段吊り上げてぼろ儲けしてる奴らは地獄に堕ちればいいのさ
んでMySQLとの関係は。
169 :
NAME IS NULL:2006/08/31(木) 05:04:32 ID:jVfZIVCs
UNIXタイムスタンプを格納するカラムのデータ型は何が適切でしょうか?
今まではchar(10)などとしてきたのですが、
もしかしてintなどのほうがいいのでしょうか?
time_tが32bitだったり64bitだったりするから、変換がからむがDateTimeで持つのも悪くはないと思う。
>>169 保守重視なら DateTime。
DBパフォマンス重視なら int だろうな。
>>172 datetime型で格納される値(書式)は、
「UNIXタイムスタンプ」(10桁の数字)ではないよね?
>>173 都度SQL時に関数使って相互変換するんでしょ。 普通の日付としても使えるしと。
175 :
NAME IS NULL:2006/08/31(木) 17:59:21 ID:4xLotoKF
ホームページ制作王は、世界の権威として名高いCOMDEXが
21世紀のワールドスタンダードに認定したWebパブリッシングアプリケーションである。
ホームページ制作王に不可能はない。
不可能があるとすれば、そこが人類の英知の限界点である。
21世紀、世界のWebはホームページ制作王を中心に回っていくのである。
にもかかわらず、ここ日本では、心ない風評のため、まだまだ普及に
遅れがみられる。
ホームページ制作王を普及させないかぎり、我が国のWebは、
世界の趨勢の後塵を拝するばかりである。
世界が認めた高性能!ホームページ制作王
http://pc8.2ch.net/test/read.cgi/hp/1106508682/
>>176 MySQLの「timestamp」って、UNIXタイムスタンプとは別物なんだよねぇ。。。
178 :
NAME IS NULL:2006/09/01(金) 21:34:04 ID:4Md9Htbi
質問です。
既にデータが格納されているテーブルのprimaryなkeyに対して
alter table テーブル名 modify 列名 int(6) auto_increment
↑こんなSQLを発行してauto_incrementを新規に設定しようとしたのですが、
「Duplicate entry '1' for key 1」というエラーが出ます。
感覚的には設定しようとしているkeyの現在の最大値+1をauto_incrementの開始値に
設定しないとマズいのかな、という気がしていますが、その方法がわかりません。
よろしくです。
179 :
178:2006/09/01(金) 23:02:17 ID:4Md9Htbi
自己レスです。
alter table テーブル名 auto_increment = 値
で開始値の変更が出来るようなんですが、レコード数が多い(試したのは10万件程度)と
なぜか上手くいかないようです。少ないと出来ました。
お手上げです。
180 :
178:2006/09/01(金) 23:18:56 ID:???
さらに自己レスです。
上記はINNOBASEで行っていたのですが、一旦MyISAMに変換してから
同様の作業を行い、INNOBASEに再変換することで解決できました。
そういやさ、みんなNaviCatってもってるの?
あれってOfficeとかについてくるMicrosoftQueryとかに比べて何かいいことあるの?
NaviCat持ってるよ。
MicrosoftQueryより良いところはMysqlが使える所だよ。
ODBC経由で使うのに比べて、何か良いことあるんですか?
同じDB内でMyISAMとInnoDBを混在させようと思うんですけど、
InnoDBのBEGIN・ROLLBACKの途中でMyISAMの更新が絡んでたら、
InnoDBのテーブルだけロールバックして、
MyISAMのテーブルは更新適用ってことで合ってますか?
186 :
NAME IS NULL:2006/09/03(日) 04:06:19 ID:3DNv6zPE
掲示板やブログなどのWebアプリを作る際、
MyISAMとInnoDBってどちらが適切でしょうか?
今までは「InnoDBはお金や商品を扱うようなクリティカルな場合だけ」とか
思ってたので、全てMyISAMでやってきたんですが、
それだと何か問題とかありますでしょうか。
何かの記事で、「mixiは全てInnoDBを使ってる」ということを知り、
ちょっと不安になったので質問させていただきました。
日本人はカテゴライズが好きだねえ
>>186 初心者のオリは
UPDATEが発生するTABLEはInnoDB
INSERTだけのTABLEはMyISAM
って使い分け。
2つに分ける正当な理由があるならいいが、
俺なら、よほどのことがない限りIsamかInnoどちらかに一方に統一するな。
>>188 使い分けの根拠というか、具体的な理由は?
ちなみにMyISAMだって自動でロックされるから、通常は不整合は起きないよ。
>>189 統一の基準や理由キボンヌ
>>190 ファイル構成自体違うし。それだけでも統一した方がメンテナンス
やりやすい。また、分けるなら明確なドキュメント書いてないと、
他人がメンテナンスもしくは引き継ぎとかの時にいらない問題が
発生する場合もあるでしょ。
PHPとMySQLで掲示板を作っているのですが、
テーブルの定義で、
id int unsigned auto_increment;
ってした場合、intの上限を超えたらどうなるんでしょうか?
初めからbigint unsignedですべきですかね?
こういう場合は満タンになる前にテーブルをもう一つ作るとかの対処法でいいのでしょうか?
>>193 データが生まれて死ぬまでをきちんとする。これ基本。
普通はintの上限とか考えないで、2chみたいに1000超えたら
アーカイブにするとかしっかりシステムとして作る。
アクセスがあまりないなら、ある件数超えたら古いものから順に削除するのもいいかも。
>>194 レスありがとうございます。
まだ学生で運用経験がないので参考になります。
>>194 単純にアーカイブ化や削除が出来ないものも多いけどね。
たとえば会員IDとか。
もしサービスの人気が出て爆発的に増え続けたら・・・
>>196 そしたらそうなった時に考えればよろしい。
そういうところはYAGNIとして割り切らないといつまでたっても形にならないよ
MySQL4.1でクライアントもサーバもSJISの場合は全く問題ないのでしょうか?
クライアント・サーバ友にSJISでPHPのmysql関数使うと
不可避的にSQLインジェクションが発生する。
>>199 小学校(しょうがっこう)へ、再入学(さいにゅうがく)しましょう。
203 :
NAME IS NULL:2006/09/03(日) 21:57:26 ID:hFtgK4NZ
現在、MySQL4.1で内部コードEUC-JPで作られているのですが、
UTF-8に変更する必要があり、MySQL5.0にして内部コードUTF-8にしたいと思っています。
データが500万件ほどありまして、これをどう移行しようか悩んでます。
一番、簡単に移行できる方法ってどうするば宜しいでしょうか?
phpで、mb_convert_encodingを使ってPGで全変換させることを考えてはいるのですが、
一個一個のテーブル用に変換用PGを作るのが大変なもので。。。
宜しくお願いします。
>>201 回答ありがとうございました。
と言うことは、PHP以外では問題ないということですか。
SJISを止めさせたかった件があるのですが、
PHP以外だとOKなら、Perl使いには止めさせる事は出来なさそうで残念です。
205 :
NAME IS NULL:2006/09/03(日) 23:10:20 ID:VpnWy2PC
Perl/Mysqlでmixi風BBSを作ってみました。
・スレッドタイプ
・画像アップロード機能(スレ作成者のみ)
・スレッド終了機能
・書き込み削除(スレッドは不可)
・age/sageあり
・ID表示あり
通常のBBS機能に加え個別アカウント作成機能
・自己紹介表示(アイコン画像アップロード、コメント)
・書き込みランキング
・コミュニティ内メール機能
テストしてやろうジャマイカという方おられましたら
お願いします。
http://rbbs.sytes.net/
206 :
NAME IS NULL:2006/09/03(日) 23:14:48 ID:i7dU/SiB
207 :
NAME IS NULL:2006/09/03(日) 23:17:16 ID:i7dU/SiB
>>203 4.1 euc-jp で mysqldump したものを utf-8 に変換後、5.0 の mysql に食わせるとか。
210 :
NAME IS NULL:2006/09/04(月) 01:38:04 ID:kXemt8IJ
>>208 レスありがとうございます。
mysqldump使ったことなかったのですが、今やってみたら、
実体はテキストファイルなんですね。バイナリデータかと思っていました。
これで、何とか簡単にできそうです。助かりました。ありがとうございました。
>>205 それ「mixi風」じゃなくて、モロ「mixi」のデザインぱくってんじゃん。
HTMLだけならまだしも、テーブル(TD)の背景画像をパクってるのはヤバイ。
212 :
205:2006/09/04(月) 17:36:38 ID:???
>>211 訪問ありがと。
パーツは似せて作ったんだけどまずいかな
ぱくりっちゃぱくりだけど。
>>212 気にするな。超人気サイトにならない限り大丈夫。
@211じゃないけど。
>>212 tablebg.gifは、一応自作なのか??
でも限りなくmixiと似てるなw
せめて全体的な色の組み合わせだけでも変えればパクリ感が減るのに。
215 :
211:2006/09/04(月) 19:06:07 ID:3P7F9hei
photshopで元画像を横に置いて真似て作ったんだけど
良く考えたら色成分も同じだし結局コピーと同じだなorz
配色は一考しまつ。
意味のないカキコでもいいんでカキコが欲しいところ。
[email protected]でもいいので登録テストもしていただけると嬉しいです。
って、、あんまりしつこくこのスレに書いてるとまずいかな。
何かあればあっちに書いていただけると助かりまつ。
昨晩から500アクセスいただきましてありがとうですた!>ここ見て訪問された方々
ではこれにて。
216 :
NAME IS NULL:2006/09/04(月) 19:07:13 ID:3P7F9hei
212ですた。失礼orz
何に於いても
こういう凡ミス多いのよね・・・はぁ
217 :
とっとこ:2006/09/04(月) 19:41:00 ID:v7JqUa19
質問宜しいでしょうか?
mySQLのインストールで困ってます。サービスが上手く起動してくれません。
管理→サービスから起動もエラー1067と出てしまいます。
またmy.iniを削除後、winmysqladmin.exe起動しても現象が改善しません。
(この場合は、エラーログなしで、winmysqladmin画面が一瞬展開後、閉じてしまいます。)
ただ、mySQLをアンインストール&my.iniを削除してから再インストールを行うと、
mysqlサービスは起動しますが、サービスを再起動を行うと上記現象にもどってしまいます。
ご助力お願い致します。
OS:Win2kServer
Mysql:4.0.26
219 :
とっとこ:2006/09/04(月) 20:41:33 ID:v7JqUa19
レスありがとうございます。
googleと相談はしたのですが、解決にいたらないんです。
>>215 500アクセスとはすごいな。
このスレにそんなに人がいるとは思えないけどww
221 :
NAME IS NULL:2006/09/05(火) 00:18:58 ID:891iHyK7
>>220 リロードも含まれてるんですけどねw
二重投稿の検証でリロードしまくったのかな。
ユニーク数はもっと少ないです。
しかしあれっすね。
せっかく作っても公開する場所がないんで
自己満足に終わってしまいそうです。
何か使い道はないもんでしょうかね。
SELECT * FROM table WHERE `primary_key` = 'hoge';
SELECT * FROM table WHERE `primary_key` = 'hoge' LIMIT 1;
primary_key がプライマリキー、あるいはユニークキーだった場合
上と下のクエリでパフォーマンスに差はあるのでしょうか。
検索キーがユニークであれば、"LIMIT 1" を指定せずともヒットした
時点で検索を終了するのかなと気になりました。
20万件程度でのパフォーマンスに差はありませんでしたが、どなたか
上手に説明してくれる方が居ましたらご教授お願い致します。
泣けるぜ
>>222 ユニークキーを使った時点でLIMITを無視するように最適化されると思う
EXPLAINの情報を参照してみたら?
225 :
NAME IS NULL:2006/09/05(火) 08:37:14 ID:L7A0cOr7
show tables
226 :
NAME IS NULL:2006/09/05(火) 11:13:10 ID:qJu+mkGP
Table:a
id,name
1,名前A
2,名前B
3,名前C
Table:b
date,id,check
'2006-09-04',1,1
'2006-09-04',3,1
'2006-09-05',1,1
'2006-09-05',2,1
出力:特定日の出席者チェック
ex)2006-09-04
name,check
名前A,1
名前B,null
名前C,1
ex)2006-09-05
name,check
名前A,1
名前B,1
名前C,null
当初、
select * from a left join b on a.id = b.id where date='特定日';
としてましたが、未出席の人も排除されてしまいますので、
select * from a left join b on a.id = b.id where date='特定日' or (isnull(date) = 1);
としたのですが、
いかがなものでしょうか?
もっと、よさげなクエリがありそうですが・・・。
227 :
NAME IS NULL:2006/09/05(火) 11:57:19 ID:PfZbXATk
LOAD DATA INFILE について教えてください.
今、SJISのcsvのファイルを持っています.
テーブル側はUTF8なのですが、SJIS->UTF8変換しながらインポートって出来るんでしょうか.
先にUTF8に変換しておく必要があるのでしょうか.
どなたか教えて...
head -1 csv したファイルでためすといいよ
229 :
227:2006/09/05(火) 12:47:15 ID:???
試してみたら駄目だったんですが、
オプションの類を設定すればうまくいくのかな、と思ったり.
トピックごとにレスが出来るフォーラム型の掲示板作ろうとおもうんだが、
トピックごとにレスのテーブル作るようなやり方ってアリ?
トピックが1000あればテーブルが1000個になるけど…
それともレスを全部ひっくるめたテーブルを作って、トピック別のIDをキーにSELECTで抽出するのも考えたんだけど、
毎度毎度検索させてたら負荷が大きそうで…
>>227 郵便番号データとかのときにやったけど、エディタにごっそり読み込んで変換。
その後LOAD DATA...した気がする。そういうオプションはたぶん無いんじゃないかな。
>>230 泣ける掲示板だな
>>227 nkf使え。
>>230 オレなら全部ひっくるめたテーブルにする。つうか釣られたけどスレ違い。
>スレ違い。
すいませんでした。
234 :
212:2006/09/05(火) 18:05:46 ID:891iHyK7
一生懸命書き込みしてるんだけど返信がない・・・
自分がレスするとスレが止まってしまう・・・
冗談書いたのにマジレスで叩かれる・・・
そんなあなたは
チラ裏-communityへ。
http://tiraura.sytes.net/ まじめなサイトじゃつまらないのでこれでオープンしますた。
TD画像やめて、配色変えると、こんなんになりますた。
みなさんの協力でここまでできました。ありがとうございましたあああああああ
>>234 チラ裏に書いてみたけど反映されない...
「 」じゃなくて「 」にしてくり
236 :
235:2006/09/05(火) 22:12:03 ID:???
>>235 うぇ...
「 」じゃなくて「 」にしてくり
でした。
237 :
212:2006/09/05(火) 22:15:42 ID:891iHyK7
ありゃ。ちょっと見てみますね。
238 :
212:2006/09/05(火) 22:30:19 ID:891iHyK7
ログインしてないと書き込み反映不可になってました。
すみませぬ。修正しました。
239 :
NAME IS NULL:2006/09/05(火) 22:58:49 ID:7EGTNQV2
UPDATE member_table SET update='テスト' WHERE id=1
の構文でエラーが出て気が狂いそうです。助けてください。
updateのデータ型はvarchar(20)です。
ちなみにデータ型intの場合で数値なら同じ構文でUPDATEできます。
エラーメッセージ書け
241 :
NAME IS NULL:2006/09/05(火) 23:09:02 ID:7EGTNQV2
PHPでクエリーしてるから普通にfalseが返ってくるだけ
\x5c問題じゃねーの?
というか、false返って来たらどうすればいいんだ? 調べて出直して来い
>>239 なんでそんな予約語と同じカラム名つけてるの?
UPDATE member_table SET member_table.update='テスト' WHERE id=1
とかじゃどう?
ていうかテーブルのカラム名別なものにした方が良いと思うけど
246 :
239:2006/09/05(火) 23:51:30 ID:7EGTNQV2
皆様ありがとうございました。
>>244さまのご回答と同じで解決いたしました。
ご協力ありがとうございました。
なんか「協力」って言葉に違和感を感じた今日このごろ。
内部文字コードはUTF8になっているのですが
PHPにてとりだすとコードが「ASCII」になってしまいます。
mb_convert_encodingでコード指定しても改善しません。
これはどんな解決策があるでしょうか?
ご教示お願いいたします。
環境
サーバー XREA
Mysql 5.1.11
phpMyAdmin 2.8.2
phpのver
250 :
227:2006/09/06(水) 09:14:43 ID:???
>>231-232 thanx.
nkf -wx してから叩き込みました.
時代はskfかと思ったんだけど、
Cent用のrpmが無かったのであきらめた漏れはヘタレだ.
utf8で保存したcsvを食わせてみたら文字化けしてやがる。
mysqlの文字コードがutf8だったからそのままインポートしていけると
思ったんだが。。。
文字コードでハマる度に日本語なくなれって思う。。。
primary key(A,B) で定義したテーブルにあらかじめ
いくつかデータを入れた状態で。
例えば
A | B
~~|~~
5 | 1
5 | 2
というデータが入っていたとして
update mail_knr set B = B + 1 where A = 5;
というSQLを流すと Duplicate entry '5-2' for key 1
というエラーが発生します。値が重複するエラーのようですが、
上記のSQLのような全ての値を加算したりすることはできないのでしょうか?
とりあえず分からないのでダミーの数字を加算して、その後(ダミー)-1を減算
してごまかしていますが。
>>252 primary key が一瞬たりとも重複しないようにチェックしてるんだ。
RDBってえらいなぁ。
なので、order by を使って矛盾が出ないようごまかせ。
update mail_knr set B = B + 1 where A = 5 order by B desc;
個々の緯度経度を記録した
+------+-----+-----+
| code | lat | lon |
+------+-----+-----+
というテーブルが有り、数千件のデータが有ります。
ここで、特定地点から近隣のデータを取得しようとしています。
※計算式はややこしいので、とりあえず、緯度(lat)に絞って、距離も角度で話します。
SELECT `code` FROM `table`
WHERE `lat` > 'SouthEND'
AND `lat` < 'NorthEND'
とすることで、南北一定間に存在するcodeを取得できるのですが、
場合によって結果が数百件になる場合が有ります。
で、LIMITをかけたいのですが、この時、
「距離の近い順に10件」とするにはどうしたらよいのでしょうか?
ORDER BY と HAVING 辺りではないかという気はしているんですけど…
お知恵をお貸しくださいませ。
>>254 ORDER BY は式が書けるので、距離の計算式を書けば原理的にはOKなはずだ。
緯度だけでいいなら ORDER BY ABS(lat - CENTER) みたいな。
実際には緯度と経度と三角関数が乱れ飛んだような式になりそうだが。
>>254 ... ORDER BY '距離' limit 10
なんだが、距離ってどう出すんだ?
257 :
254:2006/09/07(木) 17:38:56 ID:???
>>255 ありがとうございました。
ORDER自体に式がかけるとは…勉強になりました。
仰るとおり、実際には、緯度経度合わせ三角関数ガリゴリですが
おかげさまで目的が達せられました。
>>256 元になる特定地点の緯度(経度)が基準で、
実際には「距離」は三角関数で求めます。
>>251 >文字コードでハマる度に日本語なくなれって思う。。。
「日本語なくなれ」じゃなくて、
「文字コード統一しろ」だろ。
>>251 show variables like 'character%';
で出てくる全てを理解できていれば迷うことはない。
>>259 それって何??
ウチの環境で実行してみたら、
character_set latin1
character_sets latin1 big5 cp1251 cp1257 croat czech danish dec8 ...
って結果が返ってきた。
全部EUC-JPで保存しているのに、なぜlatin1・・・??
>>257 本題とは関係ないけど、日本国内なら、
三角関数無しでもそこそこの精度な気がする。
甘い?
262 :
235:2006/09/08(金) 00:24:17 ID:???
>>260 もしかして 4.0 とか 3.23 使ってる?
263 :
260:2006/09/08(金) 03:42:09 ID:???
>>262 うん、3.23だよ。
どうして分かったん!?
264 :
262:2006/09/08(金) 08:15:01 ID:???
>>263 それは秘密です。
なお、3.23 は UTF8 をサポートしてない。
265 :
254:2006/09/08(金) 08:52:07 ID:???
>>261 球体を考慮しない誤差は許容範囲なのですが、
「半径○キロの同心円内」の為三角関数使ってます。
スレ違い失礼しました。
設定を失敗して元の状態に初期化したいのですが
アンインスコしてもデータが残っていて一番最初の状態になりませんでした。
本当に初心者です。分かる方いませんか?
案印すとしてもMysql入れたディレクトリが残ってるだろうからそれを消して
再印すとすればOKだと思う。もれも本当に初心者なんでワカランけど・・・
>>267 本当の初心者だって、自分のOSと入れたMySQL
パッケージの種類(出所)ぐらい示せるだろ。
偽者の初心者か?
>>267 本当の初心者だったら、マシンもOSさら初期化してしまうのが王道。
>>270 そうだとするとうちの会社のサポート部隊は全員本当の初心者だ(プゲラ
いや全くその通りなんだよなw
レプリケーションをやろうとしているんですが、うまくいかず…
スレーブ側で show slave status \G すると
Slave_IO_State: Connecting to master
Master_Host: masterhost.com
Master_User: repl
Master_Port: 3306
:
Slave_IO_Running: No
Slave_SQL_Running: Yes
で、マスターに接続中のままとなってしまう。
はて?と思って、スレーブ側から mysql -h masterhost.com -u repl -pPassword とすると、
ERROR 1045 (28000): Access denied for user 'repl'@'slavehost.com' (using password: YES)
となる。ところが、別のホストから mysql -h masterhost.com -u repl -pPassword を実行すると
ちゃんとマスターサーバに接続できてしまう…
マスター側は特にホストごとのアクセス制限をかけていないのになぜ??????
アドバイスおながいします。
>>271 だってサポートって、あんまりコンピュータに詳しくない奴がやる仕事なわけでww
俺もいろんな会社のサポートに電話かけるとイライラするよ。
「ではまず、●●を●●してください…」
ってマニュアル通りの決まりきったことをやらせようとする。
もうそんなもんやったの! そんである程度原因切り分けしてから電話してんの!
それなのにこちらの話を無視し、ひたすらマニュアル通りに1からやらせようとする糞サポート。
話してると分かるが、まったく知識が無いヤツがほとんど。
自力で解決できなくてサポートに電話してるせに半端にしったかぶるやつが一番手に負えないわけだがw
mysqladmin pingが通らないのですが、、
ちなみにこんなエラーが出ます
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
mysqldのインストールまで終わっていて、net start mysqlはできています。
276 :
NAME IS NULL:2006/09/10(日) 00:02:47 ID:qp3J0LKF
ageます
>>275 my.cnf、my.iniでmysqladminのデフォルトユーザ、パスワードに
管理権限のあるMySQLユーザを設定するか
mysqladminに-u、-pで管理権限のあるMySQLユーザを指定する。
>>277 GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'Password';
をマスターで実行してみましたがダメでした。
mysqld を再起動してもダメです…
>>274 お前が一番バカ。
ソースが公開されてないソフトについては、
症状の再現性確認と原因の切り分けまでがユーザーの出来る限界。
>279
それだと「repl」というユーザーに権限が設定されるだけだと思うけど??
WinxpでMysql5.0.20を入れてmysqladmin pingするとこんな感じだった.
インストール時にrootのパスワード設定墨.
>C:\MySQL Server 5.0\bin>mysqladmin ping -u root -p
>Enter password: ********
>mysqld is alive
環境晒せっていわれるだろうからOSとmysqlのバージョンは書いたほうがいいと思うyo.
>>279 レプリケーション実行の前に、スレーブのコンソールから
mysql -hマスタのIP -uユーザID -pパスワード
でマスタに接続できるか確かめれば。
ホスト側のユーザにホスト定義されていない予感
mysqlクライアントにて、
100万件のデータをインデックスなしで登録した後、
100万件目のデータをwhere句で指定し、selectしたところ約20秒かかりました。
もう1回同じ条件でselectしたら、0.5秒でした。
2回目のselectで大幅に検索結果が早くなったのは、何故なのでしょうか?
個人的な推測ですが、FreeBSDが読み込んだデータをメモリ上で保持していて、
それをmysqlが読み込んだから早くなったのかなぁと思うのですが。。
初歩的な質問で申し訳ありませんが、答えに結び付くようなキーワードだけでも
教えていただけるとありがたいのですが。。
∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
286 :
NAME IS NULL:2006/09/12(火) 02:55:30 ID:0MAA6Lji
>100万件目のデータをwhere句で指定し
RDBが解って無いw
289 :
NAME IS NULL:2006/09/12(火) 11:31:19 ID:Kd3shGSc
timestamp型のカラムにインデックスを使いたいのですが、出来ないで居ます。
alter table tblname add index colname(colname);
でインデックスを作成しました。
explain select colname from tblname where colname<now();
だと使われるのに、
explain select * from tblname where colname<now();
だと使われません。
use keyを使っても同じ結果です。
どうやればいいのでしょう?教えてください。
∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
291 :
279:2006/09/12(火) 22:00:17 ID:???
レス遅れてすんません。
>>281 環境はマスター、スレーブとも FreeBSD 6.1R+mysql-5.0.22 でつ。
>>282 >>272に書いたとおりでつ。
なぜか他の user ID だとマスターに接続できるのが不思議…
>>283 GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'Password';
をマスター側でやってます。特にホスト単位で接続制限は設けてないです。
my.cnf もほとんど公式ドキュメント通り、server-id もバッティングしてないし…
あああ…
>>284 2回目を実行する前に
syncコマンドを実行すれば、
メモリの内容がdiskに書き込まれるので、検索秒数は1回目と同じになると思います。
294 :
NAME IS NULL:2006/09/13(水) 03:10:18 ID:K8x5ish6
ここでいいか分かりませんが質問お願いします。
Linux上のMySQLで、誤ってrootパスワードを削除してしまいました。
その場合はどのようにすればよろしいでしょうか?
もう一回設定すりゃ良いじゃない
296 :
NAME IS NULL:2006/09/13(水) 03:45:12 ID:K8x5ish6
再インストールということでしょうか?
297 :
NAME IS NULL:2006/09/13(水) 03:46:46 ID:K8x5ish6
設定を初期化するコマンドがあるのでしょうか?
298 :
NAME IS NULL:2006/09/13(水) 03:53:32 ID:K8x5ish6
3.23だと、vmysqlsetupというコマンドで再設定ができるのでしょうか?
当方の環境は4.1になりますが、4.1だとどのようなコマンドを使えばいいのでしょうか?
そういう致命的なミスをやらかすようなら、またミスするだろうな。
もっと慎重に行動する癖つけた方がいいよ。
弄る前にバックアップぐらい取っとく癖つけたら?
データベースなんてディスク上のデータをごりごり読んでたら遅いからメモリ上にデータ置いといて、いかに高速に検索できるようにするかがチューニングの肝。
100万件のデータがメモリ上に展開できるだけのメモリを積んどくべきだよ。
自力で解決できるスキルも無いくせに、サポートに頼ってる時点でだめだよな。
ソースが公開されてないソフトだろうが、変わらんよ。十分に危機管理できてない証。
サポートに訊いてる時点で負け。
ユーザでもサポートでもソースが見れる訳じゃないし。サポートにできるのはマヌアル対応か、開発部隊にエスカレーションぐらいしかできないし。
EUCなんて使ってたら苦労するだろうなあ。UTFに統一すれば楽なのに。
300 :
NAME IS NULL:2006/09/13(水) 04:14:22 ID:K8x5ish6
>>299 返す言葉もありません。
こちらのページに、rootを忘れてしまった場合の解決方法がありました。
http://smdn.invisiblefulmoon.net/index.php?cmd=read&page=Linux%2FFedora%20Core%2FMySQL 上を参考に考えているのですが、updateのところをどう変更すればよいでしょうか?
# mysqldを停止する
/sbin/service mysqld stop
# --skip-grant-tablesを付与してmysqldを起動する
/usr/libexec/mysqld --user=root --skip-grant-tables &
# mysqlを起動
mysql mysql
# mysql.userテーブルを編集してパスワードを削除する ←ここが分かりません
select user,host,password from mysql.user;
update user set Password=null where Host='localhost' and User='root';
exit
# mysqldを停止する
killall mysqld
>>299 UTF8って3バイトになるんじゃなかったか?
レコード長伸びる→mysqlclusterのレコード長制限にひっかかる
レコード長伸びる→ディスク入出力の量が増える
レコード長伸びる→保存に必要なディスク容量が増える
漏れもUTFに夢を見ていた頃があったけどな。
302 :
NAME IS NULL:2006/09/13(水) 04:54:59 ID:l55FDLm5
こんな時間に起きてる方が居らっしゃれば良いのですが、質問させて頂きます。
A 2006-01-01
A 2006-02-02
な重複を削除して
A 2006-02-02
にしたいのですが、どうやってSQLを書けば良いのでしょうか?
何卒お力をお貸し下さい。お願い致します。
>>302 その情報だけで何をどうやって回答しろというのだ。
>>302 >どうやってSQLを書けば良いのでしょうか?
キーボードで
305 :
NAME IS NULL:2006/09/13(水) 15:15:08 ID:K8x5ish6
MySQL4.1のmy.cnfのデフォルト値(インストール直後の状態)を知りたいのですが、
誰かコピペしてくれませんか?
親切な俺が
>>302を勝手に翻訳してやった
テーブル名はt1
c1 c2
--- -------------------
A 2006-01-01
A 2006-02-02
B 2006-03-01
B 2006-03-01
C 2006-02-02
C 2006-04-01
C 2006-05-02
を、最新の日付のみ残してあとは削除
c1 c2
--- -------------------
A 2006-02-02
B 2006-03-01
C 2006-05-02
SQL一発でたのむぞい(サブクエリは可)
307 :
NAME IS NULL:2006/09/13(水) 15:41:52 ID:+dm6ZN3q
>>302 こいう質問のしかたする奴ってマジむかつくなw
ついでに答えてやろうかと思ったけど検証環境がないのでやめたw
>>294ですが、、/var/lib/mysqlを削除して、mysqlを再起動するだけでした。
>>299 プ こんな簡単な回答もできないのに、偉そうに知ったかぶりして・・・恥ずかしい奴(ゲラ
>>310 >こんな簡単な回答もできないのに
299ではないが・・・むかついた。質問してきたお前が言うな。
いや、でも、回答を出せないのにいきがってる
>>299も問題だ。
俺は純粋に
>>310をなるほど〜と関心した。
update でwhere以下の条件に合致せず、updateできなかった場合
insertにしたいのだが、どのように判定すればいいんでしょう。
$result = mysql_query("update table1 set col1 = '1' where key1 = 'ABC'");
if ($result == false)
{
$result2 = mysql_query("insert into table1 (col1) values ('ABC');
}
これできる?
先にselect count(*)使ってupdateとinsert振り分ければ?
>>314 PHP?
mysql_affected_rowsがゼロを返したらinsert、でどうですか?
>>314 どうしてもクリティカルで重複ヤバいって状況で
なおかつトランザクションも使えない状況なら
key1をuniqueにしてある前提で以下の方法が使える
最初にinsert
うまくいけばそれで終わり
既にキーがあればここでdup keyエラーになるのでupdate処理
>自力で解決できるスキルも無いくせに、サポートに頼ってる時点でだめだよな。
自力で解決できるスキルも無いからサポートに頼るのではないか?
と、思ったのは俺だけではないと確信。
迷えるスキルなしは、この偉人に頼れ。
, イ)ィ -─ ──- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , /, ,\ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| >┻━┻'r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ Gugurecus ]
( 2006 〜 没年不明 )
最近、このスレでの出番が減って、寂しがっているぞ。
320 :
314:2006/09/13(水) 19:55:16 ID:???
レスありがと。
mysql_affected_rowsでいけそう。
参考になりますた。
>>320 使いどころが難しいけどREPLACE 使えば?
マニュアル読めよ・・・・・・
insert 〜 on duplicate key update でググレ
使い方によっては複数行updateもできるスグレモノ
頭悪いとわけわからんクエリ走らせてバックアップから巻き戻す事になりそうだけどな。
replaceはdelete権限必要なのと、省略したカラムは「カラムのデフォルト値」になってしまう点に注意
>>314 まずwhere key1 = 'ABC'に該当するレコードをSELECTしてみて、
その結果セットがTRUEならUPDATEクエリ、FALSEならINSERTクエリにすればよい。
>>325 マルチユーザ環境だと、SELECTした後、INSERT/UPDATEするまでの間に
他のユーザがテーブルを書き換えることがあるから、
>>323か
>>317がよいね。
無料ソフトだけあってDQNが多いスレですね。
328 :
314:2006/09/14(木) 10:12:14 ID:???
またまたレスありがと。
insert ... on duplicate key update...
はMySQLのバージョンの問題で使用できず。
勉強になります
329 :
NAME IS NULL:2006/09/14(木) 17:21:14 ID:FqIzS8bo
textカラムに収納された文章の先頭部分を、
LEFT関数を使って取り出しています。
でも、textカラムに半角と全角の文字が混じっていると、
場合によってはLEFT関数で取り出した結果の最後の一文字が化けてしまいます。
これを解決するにはどうしたら良いでしょうか?
(PHPで言うところのマルチバイト関数があれば便利なのですが・・・)
>>329 mysqlに設定している文字コードと入れてる文字コード合ってないんじゃない?
show variables like 'character%'; で確認してみ。
331 :
NAME IS NULL:2006/09/14(木) 18:45:45 ID:FqIzS8bo
>>330 今までMySQLとPHPの間での入出力で文字化けしたことは一度も無いので、
文字コードは問題ないと思います。
LEFT関数の引数は、おそらく、「文字数」じゃなくて「バイト数」として指定してるんでしょうから、
当然
>>329で書いたような現象が起こるであろうことは想像通りなのですが、
その対処方法が分からなくて質問させていただきました・・・
>>331 をぃをぃ文字数だよ。混在しててもちゃんと出るよ。
333 :
330:2006/09/14(木) 20:00:34 ID:???
>>331 「文字化けしたことは一度も無い」などの安っぽい固定概念に惑わされるな。
現にトラブってる訳なんだから。
文字コードの設定が正しければ文字操作で漢字の泣き別れは起こらない。
見てみろって。
つーかそれ以前にバージョンぐらい書けよな
335 :
NAME IS NULL:2006/09/14(木) 20:51:22 ID:FqIzS8bo
>>332 あれっ、文字数なんですか!?
>>333 すみませんでした。show variables like 'character%'; の結果は、
character_setがlatin1で、character_setsにはたくさん書いてあります。
で、PHPスクリプトのほうは全部EUC-JPで統一しておりまして、
今まで文字化けが無かったのでMySQLのほうもEUC-JP…だと思っていたのですが、
なぜcharacter_setがlatin1と表示されたのか分かりません。。。
>>334 忘れておりました。バージョンは3.23.58です。
多めに切り出してあとはPHP側で加工すればいいんじゃないの?
337 :
NAME IS NULL:2006/09/14(木) 21:32:54 ID:FqIzS8bo
Pleskを使用しているので、「もしや」と思い、いろいろ検索したところ
以下のページが見つかりました。
ttp://www.biz.documents.generationact.com/faq/?id=6180 ここを参考にmy.cnfを覗いたところ、予想通り「default-character-set=ujis」が
ありませんでした。それを追加してみたところ、LEFT関数も正しく動作するようになりました。
おかげさまで助かりました。みなさんありがとうございます。
ところで、なぜ今までdefault-character-setを設定していなかったにも関わらず
日本語が全く文字化けしていなかったのかが不思議です・・・。
>>336 最終手段としてはそれも考えておりました。でも解決してよかったです。
338 :
330:2006/09/14(木) 22:21:05 ID:???
>>337 mysqlは設定と合っていなくてもある程度頑張ってくれる。
が、運が良かっただけ。カラムの文字数が設定文字数と合わなくなるし、
今回の left,substringなどの挙動がおかしくなる。
like 検索すると漢字の泣き別れでヒットしてしまうことがあるし、漢字2バイト
目の 5C 問題が勃発することもある。
EUCのコードの中に5Cを含む文字は無い
340 :
NAME IS NULL:2006/09/14(木) 23:42:09 ID:FqIzS8bo
>>338 そうなんですか! ありがとうございます。勉強になります。
「カラムの文字数が設定文字数と合わなくなる」というのは、
たとえばchar(10)と設定したカラムに、10文字「以外」の文字数が入り得る
可能性がある・・・という意味なのでしょうか??
なんか泣けてきた
>>341 泣かずに教えてやれ。
誰もが最初は初心者だったはずだ。
思い込みが強い香具師の巣窟ですね。
被害妄想も強いのだろうな。典型的なDQN。
>>343 そうそう、お前みたいなDQNが多いんだよ。
つくづく最近は文字コードなど気にしない人多いんだなぁと感じるよ
UTF-8で固めるのが主流になってきたからこれからますます誰も気にしなくなりそう
この前から"DQN"を連発している香具師は2ちゃん初心者ですかw
>>345 そもそも文字コードを気にしなきゃならない世界がおかしいのだ。
348 :
NAME IS NULL:2006/09/15(金) 12:42:16 ID:dfQ+XThS
もうUTF-8で何も気にせずしやわせになればいいじゃん
349 :
NAME IS NULL:2006/09/15(金) 14:28:12 ID:BVmffk+p
C++からMySQLを使っているのですが、どうも文字コードが合っていないようで、
日本語の値をinsertすると
Data too long for column 'xxx' at row 1
このようなエラーメッセージが返ってきます。
フィールド名には日本語を使えるのですが、値に日本語が入っているとinsertできません。
MySQLのコマンドラインでstatusを実行すると4つ表示されるcharsetはすべてsjisになっています。
C++のコードのコンパイル時の文字セットはマルチバイトセットですが、これが問題なのでしょうか。
>>345 >>337みたいなパターンの場合、それまで文字コードの問題が発生しなかったんだから
気にしなくて当然だろう。
>>348 俺はEUC-JPで統一して超幸せにやってるぜ。
mysqlがutfで格納してるのにeucjで幸せになれる訳無いじゃん。
今やウィンドウズもsjisじゃなくてutf標準だよ。
>>349 続くな。文字コードが合ってないと思う。SJISで入れてみ。
>>352 すみません、「SJISで入れる」とはどのようなことでしょう。
コードでは
mysql_query(pSQL,"insert ....");
このようにやっています。この場合どういう文字コードのテキストがサーバに送られるのでしょう。
下はstatusの結果の一部です
Using delimiter: ;
Server version: 5.0.24a-community-nt
Protocol version: 10
Server characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis
上の方で出ていたshow variables like 'character%';をやるとこんな風になりました
| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_set_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
他のDBMSではchar(10)は10バイトnchar(10)は10文字という実装が多いのだが、
4.xくらいまでのmySQLは違ってたような気がするが最近はどうなのだろう。
>>351 >mysqlがutfで格納してるのに
何言ってんの??
>>353 C++でmysqlしたこと無いけど、mysql_real_connect() で SJISを指定するとか・かな。
自身なし。
普通は、自分がどういう文字コード体系使っているか知っている筈 と思うのは既に年寄りなんかね
トラブル起こしておいて、無知故に解決できない というなら、無知自体が罪の気がするんだが。
359 :
sage:2006/09/16(土) 01:14:09 ID:WUqZozMa
>>358 技術で金もらっている以上、テリトリエリアでの無知は罪だ。
361 :
NAME IS NULL:2006/09/16(土) 05:26:56 ID:0TB/wo/2
countを使うと極端に遅くなるクエリがあるのですが、
正確な件数カウントいらないので、だいたいの件数を見積もってくれる機能って
ないでしょうか?
標準のSQLではなくてもかまいません。
>>361 > countを使うと極端に遅くなるクエリ
ってどんなやつ?
もしかしてcount使わなくても遅いんじゃないの?
たとえば以下の二つでどれほど速度差が出るのかな
select count(c1) from t1 where ....
select c1 from t1 where ....
あまり差がないとすれば見直すべきはwhereで指定した条件だろうね
EXPLAINで分析して必要なインデクスをつけたり
条件文そのもののチューニングをしてみたりした方が良くない?
具体的なクエリ曝さないと何とも。
単にテーブル設計が悪かったり、正規化できてないだけかもしれなくてmysqlとはもはや何の関係も無い罠。
モラクルRAC使っても遅いんじゃね?
おまいらデータベースファイルを直接開いたりして、どういう風に格納されてるか具来検証せずに使ってるの?
>>302 ユニークキーがないとなかなか難しいな
SQL2発でこんなの考えてみた
create table t1_tmp (select distinct * from t1, (select c1, max(c2) as dt from t1 group by c1) t where t1.c1 = t.c1 and t1.c2 = t.dt);
rename table t1 to ti_backup, t1_tmp to t1;
A|B|C の3つのTEXTフィールドがあります。
全てのレコードで、
AとBの内容を一つの空行で連結してCに代入したいのですが、
SQLだけで可能でしょうか?
PHPなどで全てをループしながら実行する方がいいのでしょうか?
367 :
366:2006/09/16(土) 21:10:23 ID:???
>>
368 :
366:2006/09/16(土) 21:12:32 ID:???
ちなみに、
UPDATE `table` SET `C` = CONCAT(`A`,`B`)
で単純な結合と代入は出来ました。
「一つの空行をはさむ」事が判りません。
concat(a,"\n\n",b)
370 :
366:2006/09/16(土) 22:05:56 ID:???
インストールの問題は、この板で良かったでしょうか?
MySQL4.1.20 をインストールしたところ
次のエラーが発生してしまいました。
同じ現象が出て、解決された方、いてはりますか?
MySQL5.0は問題なく使えてました。
一度、削除して、MySQL4を入れようとしてます。
環境は、WinXP上のVirtualPCで、FedoraCore5をセットアップして使ってます。
[root@localhost rpm]# uname -a
Linux localhost.localdomain 2.6.15-1.2054_FC5 #1 Tue Mar 14 15:48:33 EST 2006 i686 i686 i386 GNU/Linux
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[root@localhost rpm]# rpm -ivh MySQL-server-4.1.21-0.i386.rpm
準備中... ########################################### [100%]
1:MySQL-server ########################################### [100%]
060913 10:24:13 [Warning] Asked for 196608 thread stack, but got 126976
060913 10:24:13 [Warning] Asked for 196608 thread stack, but got 126976
... 中略 ...
Starting MySQL...................................[FAILED]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>371 glibcかな
static-linkのをダウンロードしてくりゃいいんじゃね?
374 :
NAME IS NULL:2006/09/17(日) 20:43:09 ID:UoL46FQP
ユーザーからアップロードされた画像について、それを閲覧できる人を個別に制限したいと思っています。
(たとえば、ユーザーAがアップした画像はユーザーDとユーザーMだけが見れる…とか。
なおかつ、その公開範囲については、画像をアップしたユーザが自由に変更できる)
そのためには普通にファイルシステムに画像を置いちゃったら誰でも閲覧できてしまうので、
MySQLに入れて管理しようと思っています。
ですが、画像ファイルって巨大なバイナリですから、DBなんかに入れちゃったら
ものすごく動作が重くなりそうな気がするんですが、こういう使い方をしても良いものなのでしょうか…?
>>374 画像をDocumentRootの外に置けば?
>>375 たしかにそれなら「誰でも閲覧可能」な状態は防げますが、
その場合、逆に「特定の誰かにだけ閲覧させる」にはどうしたら良いでしょうか?
私が考えつくのは、ユーザー毎にディレクトリを分けるとか??
でもそれだと、ユーザー数が数万とか数十万とかになった場合、
膨大な数のディレクトリが出来て大変なことになりそうな気が。。。
>>376 apacheのdeny/allowを動的に変化させることでやってる>俺
>>376 BASIC認証でまずユーザ認証をさせて
認証をパスしたユーザだけが画像を閲覧できるようにするとかは?
これならたいした実装もいらないしさ
ttp://gendai.net/ Warning: mysql_connect(): Host 'gendai.net' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts' in /home/httpd/html/include/mysql.inc on line 37
これはどういう意味ですか?
>>379 MySQLの最大接続数を超えてるんだな
mysql_close()が適切に処理されていないんだと思う
最大接続数のデフォルト値は確か100のはずだ
教えて頂きたいのですが、
環境:Windows XP + MySQL 5.0.24
foobar.bat ファイルの中で、
mysql ・・・ < .\batch.sql
と記載して、MySQLのバッチファイルを呼び出し、
batch.sqlでは、
load data infile "hogehoge.txt" into table hoge.fuge LINES TERMINATED BY '\r\n';
として、hogehoge.txtをテーブルへインポートします。
foobar.batに戻ったら、hogehoeg.txtをdelで消去したいのです。
この際、
load data infileを実行処理中に、foobar.batに戻ってしまいファイルをdelする処理に入ることはあるのでしょうか?
それとも、load data infile の処理が終わってからのみ、foobar.bat に戻るのでしょうか?
http://mysql.speedbone.de/doc/refman/4.1/ja/batch-mode.html は読みましたが、書かれていませんでした。
>それとも、load data infile の処理が終わってからのみ、foobar.bat に戻るのでしょうか?
その通り。
なぜドイツのミラーサイトを見ているのかわからんが、
Windowsのバッチファイルについてもうちょっと勉強しよう。
>>376 あくまでも方法例の一つとして。
ファイル名はデータベース化してユーザーのアカウントと紐付けて管理する。
認証でユーザーのアカウント(閲覧権限・閲覧可能画像)は取れるわけだから、
あとは、簡易的なGateWayCGI(単なるStream)などで、目的画像を出力すれば良い。
384 :
379:2006/09/18(月) 01:38:03 ID:???
>>380 ありがとうございました。
ニュースのサイトで100って少ないように思いましたが、そんなものなんですね。
同時接続数問題=接続数が一定を超えると他のホストからの接続もできなくなる
接続エラー数問題=特定ホストからの接続エラーが一定数になるとそのホストからだけ接続できなくなる
症状としては別
386 :
NAME IS NULL:2006/09/18(月) 06:39:45 ID:VKtBGZ9P
>>377 ユーザ数が数万以上の場合に動的にすると、すごく動作が重くなりそうですが、大丈夫ですか??
>>378 ユーザ認証は自前で既に実装しておりまして、それと関連付けたいと思っています。
>>383 最初の2行につきましては既にそうしている(ただし現在のディレクトリはDocumentRoot内)のですが、
GateWayCGI(単なるStream)とはどういうものなのでしょうか?? なんとなく意味は分かりますが、実装方法が思いつきません。
ちなみに言語はPHPで組んでいます。
387 :
381:2006/09/18(月) 08:05:11 ID:???
>>382 助かりました。ありがとうございました。
>>386 スクリプトを解して画像データを出してやるのも、
httpdにまかせるのも、数万のオーダだと100そこらまでの
やり方とは考え方も、構成も別の考えをしないと駄目だよ。
deny/allowリストに、普段から数万のユーザを列挙する訳ではなくて
一度アクセス認証をさせて(自分の場合はDB使ってる)、
その端末(IPアドレス)に対してdeny/allowを行う。
別ユーザで同一IPアドレスについては、自分のところの要件として
そこまでは不要なため判断していない。
スクリプトを介して動的に(?)画像データを取り出すのと、
Apacheにまかせて静的な画像データを送り出すだけと、
負荷や速度としてはどれくらい違うんだろうね?
もちろんスクリプトの起動分のオーバーヘッドがかかるのは当然として、
実際にスクリプトの中で画像を取り出す部分(PHPならfile_get_contentsとか?)の
実行負荷がどの程度なのかを知りたいな。
暇だったので比較
PemM1.7G Mem512M WinXPSP2 Apache2.0.55 php5.1.1(アップしてない・・・)
C:\Program Files\Apache Group\Apache2\bin>ab -n 2000 -k
http://localhost/file.php Document Path: /file.php
Document Length: 51368 bytes
Requests per second: 310.11 [#/sec] (mean)
Time per request: 3.225 [ms] (mean)
Time per request: 3.225 [ms] (mean, across all concurrent requests)
Transfer rate: 15647.50 [Kbytes/sec] received
CPU負荷は60〜70%ぐらい
C:\Program Files\Apache Group\Apache2\bin>ab -n 2000 -k
http://localhost/img.jpg Document Path: /img.jpg
Document Length: 51367 bytes
Requests per second: 983.81 [#/sec] (mean)
Time per request: 1.016 [ms] (mean)
Time per request: 1.016 [ms] (mean, across all concurrent requests)
Transfer rate: 49657.56 [Kbytes/sec] received
CPU負荷100%
PHPソース
<?php
define (BASE,"./");
$s_filename = "img.jpg";
$s_content_length = filesize(BASE.$s_filename);
Header("Content-disposition: attachment; filename= $s_filename");
header("Content-Length: ".$s_content_length);
header("Content-Type: "."image/jpeg");
readfile(BASE.$s_filename);
?>
3倍ほどの差ですか.もれはuser数が少ないのでphp介して認証チェック→ファイル出力している.
なんか板違い名気がしてきたが・・・
↑CPU負荷が逆でした.
>>391 あんたスゴイよ。
すごく参考になった。ありがとう。
ところでContent-Lengthの算出とか、ヘッダー送信とかいろいろめんどくさいんだね。
これを簡略化するライブラリとか無いのかな?
>>386 >GateWayCGI(単なるStream)とはどういうものなのでしょうか?? なんとなく意味は分かりますが、実装方法が思いつきません。
Ajaxにして、バックグラウンドで要求された分だけをストリーム。描画はJavaScriptで。(←難易度高し)
単にPHPで送り出すだけだと、接続時間の関係ですぐ切れちゃうんじゃないの?
....何がすぐ切れちゃうんだろう??........肛門かな???
大きいパケットの出し入れは十分慣らさないと裂けるよ。
そもそもHTTPはコネクションレスだから、SOAPとかのウェブサービス使わないと無理でしょ。
phpのライブラリ側を弄ってCで書き直すと実行速度が上がる悪寒。
php側では
<?php
send_file("img.jpg");
?>
だけとか。
DBの規模によるなあ。大規模DB鯖用意できるならDBに画像ファイル突っ込むというのもあり。
どうせファイルシステムに置いてアクセスするのもディスク読み出しで負荷かかるだろうし。
DBでやるなら画像用のDBは鯖分けたほうが、他のDBとの負荷の影響は小さくできてよい。
せっかく(?)なのでファイルサイズを変えて再トライ.
FlieSize Apache Apache+PHP 倍率
51368 983.81 310.11 3.1
357498 211.17 64.3 3.2
604878 135.21 24.2 5.5
(byte) (req/sec)
ファイルサイズが大きくなるにつれて差が開いてくるな・・・
参った。
Apache/2.2.2 (Fedora)
PHP Version 5.1.4
MySsql 5.0.22
という環境なんだけど、timestampが2006-09-19 03:42:42みたいなフォーマットで帰って来るのをmysql4.0Xのときと同じように14桁の数字にする方法はないでしょうか?
>>399 select timestamp+0;
マニュアルを読むことはとことん拒否ですか、そうですか。
アクセスならマニュアル無しでも使えるからな。
合計20のレコードがあるとします。
そこから10レコードの合計を求めて表示させたいのですが、詰まっています。
$sql = "select sum(cnt) as cnt from count where cnt limit 10 ";
としたら全レコードを計算した合計値が表示されます。
どうやって特定の件数のみを計算し、表示するのでしょうか?
>>404 「特定の件数」を特定する条件は何?
なんでもいいから無条件に10件ってこと?
サブクエリーで先に10件に絞ってから計算したら?
407 :
404:2006/09/20(水) 09:00:31 ID:???
>>405 最新レコード10件の件数です。20レコードあったら、11〜20です。
>>406 それは$sqlに行く前の処理のことでしょうか?
>>407 「最新」を判断するための更新時間などのデータは持っているのかい?
410 :
404:2006/09/20(水) 09:20:19 ID:???
>>408 日付も登録しているのですが、自分ではややこしくなるので考えていません。
単純に後から登録されているデータの最新10件で良いのです。
406さんのいうサブクエリーを調べましたが、
select * from count where cnt = (select sum(cnt) from count)
という書き方かと思うのですが、mysql_fetch_arrayのエラーが出たりして
構文が違うようです。。(MySQLは5系を使用しています。)
>>410 データベースの中身に順番なんてないってことを理解してください。
idを1からふっている場合でも関係ないんですか?
とりあえずもう諦めます。スレ汚しすみませんでした。
それはたんなる識別子であって「順番」という概念ではないです。
序列がない、という意味。
>>404 っていうかそのSQL自体が間違ってるわけだが。
where cnt limit 10 ってありえん。
典型的な厨房レスだったな…
LIKE検索をする時に、各filedに照合するのではなく、特定のfiledを繋げてから、繋がったfiledにLIKE検索することってできますか?(ややこしい日本語ですが・・・)
あ、用語的にはフィールドじゃなく、カラムになるのかな?間違ってたらすみません。
同一レコード内のカラムを連結したいのですが、無理なんですか?
>>416 ヒント:concat, ws_concat
>>416 ... where concat(column1,column2) like '%hoge%' ...
微妙に意味合いが違うけど、
... where match(column1,column2) against('hoge') ...
という手もあるな。
初心者質問ですいません。
MySQLでcheck(column1 >= 10)
のようにしてカラムに入る値を制限する方法ありますか?
checkでやってみたところ構文は使えるのですが、
実際に値が制限されませんでした。
>>421 check制約ってSQL構文的にはエラーにはならないが
実際には実装されていないんじゃなかったかな?
当方MySQL5.0.15、Win32で以前確かめたときは
できなかった希ガス
最新のバージョンについては知らない
是非とも実装して欲しい機能なんだがねぇ
もし情報が古かったら誰かさん補足よろしくです
>>422 なるほど、そういうワケだったのですか、ありがとうございます。
他の構文で似たような事できたらと思ったのですが、ENUMは文字列型だし
やっぱり駄目なんですかね。
>>403 だったら本屋に、あれほどマニュアル本は売ってない。
もっともマニュアル本が沢山あるのは悪い事ではないけど。
mysqlのテーブルって、データベース名のフォルダと中身の.frm、.MYD、.MYIだけコピーしたらそのまま認識してくれるの?
それともそんな甘い話はない?
試してレポぐらいしたら?
>>425 大丈夫らしいが、俺はやったことがない。
あと、動いてるのをそれで移したらどうなるかはしらん。
日本語格納するのにutf8とかじゃなくbinにしちゃったんだけど
なんか問題って起こるかな?
格納する側(php)で文字コードは統一するようにしてるけど。
初心者質問で申し訳ないのですが、ホスティングで、PHPで画像投稿、共有サイトを作ろうとした場合、
アップされた画像は、mysql内に保存するのがいいでしょうか?(そもそも画像データを保存できるの?)
それとも、アップされた画像を識別するキーをmysql内に保存し、画像自体はフォルダに
保存されるようにしたほうがいいのでしょか?
phpMyAdminからデータベースの削除とユーザーの削除ができないのですが、
この場合予想される原因って何ですかね??
すべての権限は備わってるし、
ローカルマシンからコマンドラインで同様の操作はできるんです、、。
>>429 会員数・データ数・想定されるアクセス数などのファクタがあり杉で何とも言えん。
たまに出す部類のデータだったり、結構アクセスがあるけど前にキャッシュサーバがある・・
とかさぁ。ある訳ジャン。
mysqlに何でもぶち込んでストレージ的に使う というのはそれなりに事例があり
おかしい話ではない。
バイナリや、BASE64やHEXTEXTで入れるのもよし。
オレなら画像のアクセス前に事前処理が必要ならプログラムを介すとしても最終的
には、フォワードとかして apacheに任せるけどね。
>>430 phpMyAdmin へアクセスしているアカウントの権限に1票。
>>425 過去ログにオレと親切な人が発言しているので参考にしる。
>>428 >「utf8とかじゃなくbinにしちゃったんだけど」
色々解ってないようだが、"mysql カラム型" でググって一読することを勧めする。
>>431 さん
ありがとうございます。色んなファクタがあって、やはりそれを考慮すべきなんですね。
何も考えずにとりあえず、作ってみようと思ってました。
度々、初心者質問で申し訳ないのですが、BASE64でエンコードするってのは、
例えば、aaa.jpgがアップされて、このaaa.jpgをBASE64でエンコードして、MySQLにinsertすると、
ファイルごと保存できるってことなんですか?
>>431 たとえば会員数1万人、100KBのJPGが3万枚・・・だとしたら??
あと、
>最終的には、フォワードとかして apacheに任せるけどね
↑これ意味がよく分からないので詳しく教えてもらってもいい??
>>431 どういったときに、画像をDBに保存して、どういったときに、フォルダに
保存するのがいいのですか??
多くの写真投稿サイトやmixiとは、そこらへんどうやって管理してるのか
解れば、教えてください。
>>437 mixiは画像をDBに入れてないよね。
だって直接URL叩いて見れるもん。
しかもログインしてなくても。
>>435,436,437
かなり板違いになってきたが・・・
BASE64でエンコードして、DBに保存しておけば、BASE64をデコードした
バイナリに正しいcontent-typeをつけてHTTPのリクエストに答えれば
OKだけれど、相当初心者っぽいのでその方法は勧めない。
普通にフォルダに入れて管理すればどうだい。
>>↑これ意味がよく分からないので・・・
フォワード リダイレクト でググレ
>>多くの写真投稿サイトやmixiとは
通常、素のstaticコンテンツでapache任せ。
必要に応じ、アクセス制限かけたり URLを隠す。
完全に板違いなので、この辺で。
>>438 URL叩いて画像が見れる≠DBに格納していない
>>439 板違いになってすいません。
ちょっと勉強不足で、デコードしたバイナリまではわかるけど、
>>content-typeをつけてHTTPのリクエストに答えれば
がちょっと、解りません。もっと勉強してきます。
アドバイスありがとございました!
フォルダに入れて管理ってのは、アップロードされた画像を、
指定されたフォルダに移動させて、ファイル名などをDBに入れて
管理するのかな、と思ってました。
テーブルに画像データなんてよっぽどのことがない限り入れる必要もないけどなぁ。
しかもテーブル壊れたら全部死亡だろ?
完璧板違いでで悪いけど、flickrとかフォト蔵ってどうやって画像管理してるの?
>>443 単純に画像のディレクトリやファイルにIDを振ってスタティック化しておき、
DBで管理してるんだろうさ。
オラクルをNAS代わりにする製品があったはず。
細かくアクセス制御できるのがファイルシステム上にファイル置くのとの違い。
強力なDB鯖が用意できないとか速度重視ならファイルシステムに置いてアパチ任せ。その代わりurlランダム生成で全ファイル取られるの覚悟。
>完璧板違いでで悪いけど、
判ってんなら、他でやれよ
>434
要するに中身なんて気にするなよ。チェリーボーイ
ってことですね。
でも童貞の頃って、結構気になるだろ。
なんせまんまん見るのすら始めてでどうしていいかわからないだろうし。
>>448 今のご時世、童貞喪失時点でマンマン初見って奴の方が少ないだろうな
autoincrementで、1、2ってidつけてその値を削除したら、どうなるの?
1を削除したら、自動的に2は1になっちゃうの?
>>450 そうなったらオレがこれまで設計した全DBのリレーションに矛盾が生じ
お客から電話の嵐、不眠不休で1ヶ月間対応に追われ挙句の果てに過労死
でご臨終。家族は路頭に迷い・・・・
452 :
NAME IS NULL:2006/09/22(金) 15:56:27 ID:5yTZl1Sc
簡単にお金稼ぎ!!!
以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円〜3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。
@
http://www.gendama.jp/invitation.php?frid=470908 ↑このアドレスからサイトに行く。
Aそこのサイトで無料会員登録(応募)します。
(その時点で 500 ポイントが貰えます。)
※事前に新規でヤフーなどのフリーメールアドレス
を取っておくといいですね。
Bポイントを稼ぎます。
懸賞の応募や無料会員登録などをする事によって
1日目で約 20000 ポイントは GET できます。
C 3000 ポイントから、現金や WEB マネーに交換できます。
Dトップの右上に「交換」という所がありますので、
そこから交換をしましょう。
その月に初めてポイントバンクにポイントを移行した時、
さらに別途として 1000 ポイント貰えます。
これで現金や WEB マネーを稼ぐといいですよ!!!
>>451 やっぱならないっすよね!よかったぁ。
面白いレスあざーっす!
>>454 使用しているのがTurbolinuxだとしたら仕様だと思われます。
>>440 >URL叩いて画像が見れる≠DBに格納していない
バカかお前は。
>>438をもう一度よく読め。
ログインしてなくてもURL直で見れるんだぞ。
すなわち画像をDBに入れず、普通にファイルシステムに置いてるってことだ。
>>456 URL直で見れる≠DBに格納していない
拡張子が.jpgとかだから、スクリプトではないと思い込んでいるのかな?
ま、あくまでも可能性の問題であって、現実的かどうかは関係ないが、
いい加減に気づけよ、知恵無しw
>>456 .html .jpg .pdf すべてスタティックなんですか。そうですか・・・アホ
まあまあスレ違いだし
>>457-459 とことんアホだなお前らwww
スタティックかどうか、スクリプトか否かの問題じゃねぇっつーの。
ログインしてない状態でURL直で見れるってことは、
ID等によるアクセス制限がかかってない=DBのデータの影響を受けてない=DBに保存してない、ってことだ。
自分で確認してから言ってみろチンカス。
>>461 ID等によるアクセス制限がかかってない≠DBのデータの影響を受けてない=DBに保存してない
>>461はサイトへアクセスするIDとパスワードを
サーバ内でDBにアクセスする際のDBへのログインにも使ってるとか考えてる悪寒。
試しに
>>461に質問。
「直URLでのリクエストが来たらDBから対応するデータを引き、バイナリデータを返す」
というサーバサイドのプログラムがあったとして、
貴方が言う「ログインしてない状態」の場合には貴方の考えではこれは「動かない」わけだよね。
どこのところが動かないと考えてるの?
465 :
sage:2006/09/23(土) 09:14:49 ID:whYsfoAp
>>461 アクセス制限じゃなくてDBをストレージ的に使うってよくある話なんだが
馬鹿にこれ以上説明しても無駄だな
apacheにどういうパッチが当たっているかもわからないのに、
apacheの動作結果見ただけで内部動作がわかるってか?
おめでてーな
467 :
454:2006/09/23(土) 09:47:40 ID:???
自己解決しました。
php.iniに、何故かoptimizerが呼ばれていました・・・
アップデートの際に紛れ込んできた模様です。
コメントアウトするとあっさり治りました。
MySQLの問題ではありませんでした。
m(_ _)m
データベースを利用する(組込みとかライブラリではなく)だけのアプリケーションで、ソース公開の義務があんのか?
tagつけるdbってどうなってんの?
tag用のテーブル作ってんの?
youtubeの様な共有サイトなら、動画情報を扱うテーブルと、タグづけ
されるテーブルでわけてるの?
分けてるときって、tag1、tag2みたいな感じでフィールド作ってんの?
>>469 実装方法はいろいろあるよ。
タグの名前を保管するテーブルと
画像情報idとタグidをひもづけするテーブルを作ってもイイし。
全文検索を使うっていう方法もある。
>>470 tagを5つまでしかつけられないとした場合、tag1、tag2、、って感じのフィールドと
画像情報idフィールドでひもづけされたテーブルって変ですかね?
んで、そのtagに対してand検索やor検索も行うってのは。
>>全文検索を使うっていう方法もある
どんな方法ですか?
そういえばmixiのCTO・ケスマさん曰く、
「画像はよく呼ばれるものをキャッシュしてるくらいで、
あとは特別なことはせず普通にファイルで管理してるだけ」
だそうだ。
mixiよりもlivedoorを参考にした方がいい
平均スループットで2倍くらい差があるんじゃないかな・・・・・
どんなふうにして、livedoorは早くしてんの?
てか、画像を早く表示させる方法を教えてくれ。
各社のノウハウです。
企業秘密です。
知りたい。
誰か教えてくれ。
mixi株買えば?
まあノウハウと言っても、実際は大したことないんだけどね。
誰でもちょっと頭使って工夫すれば、普通のLAMPで実現できる。
>>471 その場合は複数のタグでフィルタリングすると面倒だと思うけど、問題なし?
全文検索を使うときはタグ用のカラムを作ってスペース区切りでタグを登録して
マッチするようにすればいいんじゃね?
(スペース区切りで入れるんで、たぶん日本語でも大丈夫)
MySQLの全文検索についてはドキュメント読んでちょ。
もちろん全文検索にMySQLそのものを使わなくてもいい。
Sennaを追加してもいいかもしれないけど。
>>479 まあねえ。
ボトルネックはシステムごとに違うだろうし。
基本は apacheのチューニング。
LAMPだとスケールしない。
ジーオンデュアルぐらいで事実上頭打ち。
F5とかの負荷分散の箱とか使うとコストが恐ろしく跳ね上がるよ。
アパチって複雑怪奇だからチューニングするよりシンプルなhttpdで置き換えた方がパフォーマンス出る。
ボトルネックは、MとPだろうな。
>>483 そういう発想の時点で既にmixi型
なにも、メーカーサポート品だけで構築する必要もない
必要なのは発想の転換と技術力
>>480 あざっす!スペース区切りがダメかと思ってました。
タグ用のフィールド一つ作ってやってみます!
>483
つ LVS
>>468 # MySQL ABがMySQLのC-S間の通信プロトコルもGPLだと
# 言い張ってる件は置いておいてw
「データベースを利用するだけのアプリケーション」でも
何らかの形でMySQL AB製の接続ライブラリの利用を前提とした構成になっている
場合が殆ど(そのアプリを書いたプログラム言語自身が利用してる)だと思うけど、
その場合GPLの伝播が、そのアプリケーションにも影響しGPLの範囲で
ソース公開の義務が発生する。
但しアプリケーションを書くプログラム言語がPHPだとかPerlとかの場合、
例外規定によりGPLの伝播がアプリに影響せず、PHPであればPHPライセンスの
記述通り、アプリケーションには好きなライセンスを設定できる。
つまりソース公開の義務の有無は自分の設定したライセンスによる。
したくなければ義務のないライセンスを選ぶか、作って適用する。
各社ウハウハです。
一般的な解釈だ。しかし法的な根拠があるわけではない。
MySQLはころころライセンス条項変わりすぎだよ
494 :
NAME IS NULL:2006/09/24(日) 14:51:49 ID:HMcEbaG9
SQLの質問なんですが、
カタカナAB
とカラムに入っていて、これらを全て
カタカナAB
とupdateで全角に変えることは出来ますでしょうか?
英数字は半角のままで、カタカナだけ半角から全角変換したいんです。
カタカナは手で入れる(全行同じ文字)のは問題ないんですが、後ろの
ABがCCだったり、PXだったり、全行違います。
なので、
update table set name='カタカナAB' where name='カタカナAB';
と全行分、手で入れるのがめんどくさくて。100行もあるし。
update カタカナ??
みたい感じで。一発で出来ないでしょうか?
後ろの英数字はそのままで。
100行ぽっちならエディタのマクロでSQL作成すりゃすぐだろ
496 :
488:2006/09/24(日) 15:37:25 ID:???
うーん、なら俺の解釈が今まで間違ったつうことだな。
>>493 ウイルス性の部分だけど
「それら自身別の独立した著作物であると合理的に考えられる」
これはGPLのライブラリの使用を前提としたラッパーでも
全部オリジナルで著作物としては独自のものであれば
GPLは適用されないってことだよね。
(MySQLの例外規定なんてそもそも必要なかったてことか)
497 :
488:2006/09/24(日) 16:05:51 ID:???
ちょっと通りますよ
MySQL使う売りもんのPGで
DB環境のセットアップが自分とこならライセンス買う。
PHPでもPCアプリでも。
としております。おれの場合。
Embedded MySQLは一般的なDBMSの機能の他に
上手にノードへデータを分散させる
分散させたデータを1つのデータベースにみせる
幾つかのノードが消滅してもシステム全体に影響を与えないみたいな機能を
持ち合わせているって聞いたんですが本当なんでしょうか?
申し訳有りませんがこの答えが記されているのがFAQかマニュアルかも分かりませんし
入り組んでいてマニュアルの場所すら分からず、FAQかマニュアルの何処の部分に記されているのかと
マニュアルのURLを教えて頂きたいです
宜しくお願いします
>>498 >DB環境のセットアップが自分とこなら
文章が稚拙過ぎて、イマイチ意味が分からない。
主語や述語、目的語をハッキリさせてくれ。
GPLの物が組み込まれる場合はGPLになる。
販売物にGPLの物が含まれず、実行時に動的にGPLの物と組み合わさる場合は、
GPL汚染から免れる事ができる。
MySQLとSQLServerって何が違うんですか?
綴り
教えてください。データ追加エラーになります。
サーバとかパスワードはあってるはずです。
$imgfile = $_POST["imgfile"];
$category = $_POST["category"];
$comment = $_POST["comment"];
$comment = str_replace("<br />", "", $comment);
$tag = $_POST["tag1"]." ". $_POST["tag2"]." ". $_POST["tag3"];
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
mysql_query("set names ujis");
$selectdb = mysql_select_db($DBNAME, $con);
$sql = "INSERT INTO photo
(userid, photoname, category, comment, tag, date)
VALUES
(0, \"$imgfile\", \"$category\", \"$comment\", \"$tag\", NOW())";
$rst = mysql_query($sql, $con) or die ("データ追加エラー");
if($rst){
$register = "登録完了しました!";
rename("$PHOTOTMP$imgfile", "$PHOTODIR$imgfile");
}else{
$register = "登録に失敗しました";
unlink("$PHOTOTMP$imgfile");
}
$con = mysql_close($con);
>>504 >サーバとかパスワードはあってるはずです。
そう主張する根拠を提示してよ
あとさ、提示された情報だけでこっちは何を答えればいいんだよ?
テーブル定義も分からない、君が言う「データ追加エラー」の根拠となる
エラーメッセージも分からない、それで普通質問に答えられると思いますか?
すいません。考えたら、そうですよね。この情報で解るわけないですよね。
if($con){print "true1";}
if($selectdb){print "true2";}
↑を実行したら、それぞれ、trueが返されたのでパスなどは合ってると思います。
テーブルは↓で作成しました。
create table photo(
photoid int primary key not null auto_increment,
userid int,
photoname char(20),
category varchar(15),
comment varchar(200),
tag varchar(100),
date date,
index keyuserid(userid),
index keyphotoname(photoname),
index keytag(tag)
) engine=MyISAM;
あと、また書き忘れましたが、それぞれの文字量もチェック済みです。
文字化けで苦しんでます><
phpからmysqlに登録すると、文字化けがぁ。。
設定は全部EUC−JP、mysqlのmy.iniはujisに設定しているのですが。
どなたかおしえてくれませんか><
mysqlはutfだってば。
全部utfで作り直して、どうやってutfだと確認してるかスクリーンショットでもコマンド出力でも晒してみれ。
RHELインスコして納品してる場合には、ABに別途ライセンス料払うべきなの?
普通にヲレパッチ当てたsrpmで再インスコすれば、glibc(GPL)とリンクされてるよね。
>>501 GPLでは動的リンクも静的リンクも区別が無い。
LGPLの文面や、R・ストールマンの言動をみても
動的リンクしても派生物と考えてる。
もっとも契約なので文面が全てで、ストールマンの
言動は法的な根拠にはならんが。
伝染性については後から擁護派が
躍起になって火消ししてるとしか思えん。
胸張って「伝染るんです」って言えばいいのに。
> mysqlはutfだってば。
どゆこと?
>> 509
utfにしなきゃいけないんすか??
>>512 んなことない。
俺は全部EUCでうまく行ってる。
ただし4.1系は日本語に問題あるみたいね。
対処法もあるらしいけど。詳しくはググれ。
要はシステム内でコードを統一した方が良いって話だ
国際化を意識するならUTF-8が良い選択
日本語しか使わないならEUCも悪くない(コード判定楽だし)
国際化、国際化、って言っても、
まあせいぜい英語を使う可能性があるくらいで、
それ以外の言語はほぼ無いと考えてもいい。
実際にはUTF-8じゃないと困るような場面はほとんどありえない。
日本人が日本人相手にシステム組むなら、EUCで十分。
っていうか、総合的に考えてEUCのほうが問題が起きにくいので、むしろ推奨。
>>514も書いてるように、日本語のことだけ考えるならUTFよりEUCのほうが良い。
>>515 >>514は「UTFよりEUCのほうが良い」とは言ってないぜ
たとえばJavaの場合EUCでは文字化けが起きる可能性がある
その場合UTF-8がベストな選択だ
EUC厨やSJIS厨がそこに居るだけで有害
508の者ですが、まだ文字化けで悩んでます。。
phpは設定(バージョンは5,1,6)
mbstring.http_input auto auto
mbstring.http_output EUC-JP EUC-JP
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.language Japanese Japanese
mysql(ヴァージョンは5,0,24)
statusを実行で見ると、ujisに設定してあります。
ファイルも全て、EUCで保存されています。
教えてください><
520 :
NAME IS NULL:2006/09/25(月) 09:20:38 ID:01P5T5Ej
rootユーザで、リモートホストのmysqlサーバにアクセスするには
どうしたら良いのでしょ?
アホな質問でスマソ。
アクセスでも使っとけ。
一生、アクセスできないだろうし。
英語だと、DBに登録できて、日本語だとできない。
skip-character-set-client-handshakeを指定する前だと、
日本語も英語も登録できた。ただ、日本語が文字化けした。
どこに問題があると考えられますか?
skip-character-set-client-handshakeに問題があるんだろ
↑まったく面白くない、お前、IQいくつよ?
>>524 skip-character-set-client-handshakeを設定しないほうは良いってことですか?
↑の設定を外して、SHOW VARIABLES LIKE '%collation%';を見ると、
collation_database | latin1_swedish_ci
となってます。
これを変えれば、文字化けも解消されるでしょうか?
あと、よろしければ変更方法も教えていただきたいです。
my.iniに記述すればいいのでしょうか?
mysql(ヴァージョンは5,0,24)です
>>519 mysqlのコンソールから
show variables like 'character%';
の結果を晒してみ。
526です。
skip-character-set-client-handshakeの記述をといて、リスタートさせてみると、
SHOW VARIABLES LIKE '%collation%';を見ると、 collation_database | latin1_swedish_ci
さらに、もう一度リスタートさせると、latin1_swedish_ci の部分が、
ujis_japanese_ciに。。
んで、インサートしてみると、まだ文字化け。。
526です。
度々、すいません。
今度はリスタートもなにもせず、SHOW VARIABLES LIKE '%collation%';を
実行したら、character_set_database | latin1に!!
なんで!?実行毎に変化するんですけど。
このlatin1はどうやって、直せるでしょうか??
my.iniに記述するのでしょうか?
526です。
ほんと度々、すいません。
データを登録する前は、ujisなのが、登録した後に、
SHOW VARIABLES LIKE '%character\_set%';を実行すると、
character_set_database | latin1となってしまいます。
これはどうすれば直るのでしょうか??
526です。
ほんと度々、すいません。
mysqlcommand line clientで一番初めに、SHOW VARIABLES LIKE '%character\_set%を
実行すると、character_set_database |ujisなのですが、
use ○○db;を実行後に、SHOW VARIABLES LIKE...を実行すると
ujisがlatin1になってしまいます。
DB新しく作り直せ
DB作り直したら、ujisになりました。
ありがとうございます。
でも、以前と文字化けが。
MySQL(5.0.24)
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8
php(5.1.6)
default_charset = EUC-JP
mbstring.language = Japanese
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.substitute_character = none
ファイルはEUC-JPで保存しています。
どうかアドバイスお願いします。
>rootユーザで、リモートホストのmysqlサーバにアクセスするには
>どうしたら良いのでしょ?
お前、なんか勘違いしてるだけだと思うぞ。
rootでも一般ユーザと同じ設定するだけで、リモートサーバに接続できる。
userテーブルのhostとパスワードをちゃんと確認しろ。
>>533 コンソールから select で見てみた?やっぱ文字化けしてる?
コンソールから insert into とかでも文字化けする?
536 :
NAME IS NULL:2006/09/25(月) 15:41:33 ID:XqNBFFFZ
オートインクリメントを設定した「no」というカラムに、
レコードを10件INSERTしたとします。
このとき「no」が「1〜10」までのレコードが存在するわけですが、
たとえば7と8のレコードだけ削除して、その後phpMyAdminなどを使って
auto_incrementの値を「7」に戻し、レコードを3件追加するとします。
このとき、追加される3件のレコードの「no」は自動的に「7、8、11」となるのでしょうか。
それとも「7、8、9」となり、もともと存在している「9」とバッティングし、エラーになるのでしょうか。
538 :
536:2006/09/25(月) 15:51:33 ID:XqNBFFFZ
自己レスですが、そもそも
>auto_incrementの値を「7」に戻し
という操作自体が不可能みたいですね・・・。
noカラムの最大値より低い値には設定できないみたいです。
ということは、オートインクリを保ちつつ、
欠番(今回の場合は7と8)も埋めて利用するには、
いちいち自力で欠番を見つけ出して、矛盾や重複の無いように気をつけながら
INSERT時の値として指定しなければならないんですね。。。 困ったなぁ。
泣ける人と粘着厨だけなのかよ。。。。
>>538 一意性の面で、欠番は埋めない方がよい。
>>538 なんかさ、auto_incrementを伝票番号とかに使おうとかしてね?
>>535 はい、毎回、コンソールからselectで見ると文字化けしています。。
コンソールからinsert intoを行ったら、Data too long〜となっていました。
でも、varchar(200)のフィールドに、aaaaaを入れると平気で、
「あ」一文字をinsertすると、Data too long〜になってしまいます。
どうしてでしょう?
>>542 mysql ERROR 1406 でググレ
544 :
4:2006/09/25(月) 16:28:13 ID:0sTeTjdS
すいません。ググッたけど、わからないです。
コンフィグ設定もやり直してみましたが、変わりませんでした。。。
546 :
536:2006/09/25(月) 16:39:44 ID:XqNBFFFZ
>>540 そうですね。
ある特定の番号を空けておいて、後で必要な時に随時使いたかったんですが・・・
>>541 いえ、会員番号です。
伝票番号として使ったら何かマズい点でもあるのでしょうか?
DBから取得した日本語が文字化けしてしまいます。
UTF-8が良いと聞いたので、それで書いています。
実行してみると、日本語が???に文字化けしてしまいます。
どのように対処すれば良いのでしょうか?
文の最初にmb_internal_encoding("UTF-8");としても文字化けしたままです。
また、headerやmetaで指定しても同じです。
出力時にmb_convert_encoding($str,"UTF-8");とするとうまく表示されるのですが、
出力するたびに変換していたら文が長くなってしまうので、最初に指定しておきたいです。
おそらく、DBから受け取った文字コードがUTF-8ではないと思うのですが、
良かったらDBで文字コードを設定する方法を教えていただけると嬉しいです。
ブラウザではUTF-8では文字化けした状態で表示
EUC、SJIS、JISでは何も表示されません。
PHPスレで質問していた内容がDBだったのでこちらで聞いてみることにしました。
オレ@ LAMJ 派なんだけど DBの文字化けで悩んだことってあまり無いんだが、
LAMPってそんなに文字化け対策が大変なの?それとも一部のXXだけ?
または、全般的にLAMP派ってレベル低いの?
(イヤ一般論でつ。高いヤツはゴメン)
個人で使ってる入門者が多いんだと思う
まぁ単刀直入にレベル低いといってもいいが
×レベルが低い
○知能が低い
JavaでMySQL楽々設定1・2・3
1./etc/my.cnfの編集
[mysqld]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
2.DBをUTF-8で作成
create database mydb default character set utf8;
3.JDBC URIを適切に設定
jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf8
最後の行訂正
jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf8
便乗していいですか?
DBから取得した日本語がPHPで表示すると文字化けっていうものなんですが
訳あってPHPのソースに手を入れることが許されてないんです
(php.iniはOK)
php.iniとmysqlの設定、元データのバックアップだけで
なんとか解決出来ないものでしょうか
>>554 1. DBのデフォルト文字コードは何?
2. PHPソースの文字コードだけを変更することは可能?
3. HTML、metaタグのcharsetは出力するようなプログラム?
そうならばcharsetは何?
>>555 1. latin1です。今日、SJISにしたりUJISにしたり色々変えてみたんですがどれも駄目でした。
というか文字関連の設定項目が多くて、どれをどうしたらどうなるのか正直よく理解しきれていません。
2. 現在は全てEUCで記述されています。ソースを書き換える程ではないけど、いい顔はされなそうです…。
3. PHPのソース内で、直にSQL文、もしくは変数に入れる形で持ってきています。
charsetはちょっとわかりません。すみません。
文字コードの勉強した方が良いよ。
基本的に文字コード変換したら、情報が失われてしまうから、文字コード変換しなくて済む設計をするのが鉄則。
dbがutfで格納するなら、utfで統一。phpからjavaに変更しても安心。
メールが絡むなら、jis(iso-2022-jp)で統一。mysqlだと標準では対応してないけどな。
別途オートインクリメントのテーブル持ってそっちで伝票番号管理するのが運用上、柔軟に対応できると思う。
この辺の業務実態がコンサルできてないと、納期後にトラブル出まくって手でSQL叩いて修正なんてアフォな対応させられるよ。
今からでも遅くないから、現場と再度打ち合わせして仕様を徹底的に見直した方が良いよ。
>訳あってPHPのソースに手を入れることが許されてない
>ソースを書き換える程ではないけど、いい顔はされなそう
どんな事情だ?
そんなクソな仕事してる時点でお前もクソ。
>>557 そういうあんたもよくわかってないんじゃ。
> dbがutfで格納するなら、utfで統一。phpからjavaに変更しても安心。
javaに限らんが、基本的に DBが何の文字コードだって扱える。
> メールが絡むなら、jis(iso-2022-jp)で統一
何いってるんだかw。文字コードの勉強した方が良いよ。
DB内のデータを正しく変換して出し入れできるかが肝心。
以前からutf, utfと念仏唱えている奴だろ。
> 基本的に文字コード変換したら、情報が失われてしまうから、
「基本的に」などと言ってる時点で、もうね、アボガド、バナナk(ry
そりゃ、euc-jp→latin1とか、初期のMySQL4.1のようにShift_JISと
cp932を取り違えているとかすりゃ情報は欠損するがな。
文字コードももちろん、設置や運用を
いっぺん基礎からきっちり勉強し直したいんだけど、
大阪でどっかオススメのとこってありますか?
最近本とか読むのが辛くて…。
東京行くしかないかなぁ。
>>561 ん教科書も読めなくて勉強できるとおもってんのか。泣けるやつだな。
>>561 たしか堂島に よい子のパソコン教室があったよ
eucとsjisとutfで相互に変換して文字化けしないことは保証されてたっけ?
正しく変換できることが前提なら文字コードは何でも良いけど、実際はできないから将来的な用途も考慮して変換しないように設計するのが肝心だよ。
プログラミング言語に合うような選択をするのが楽だと思うんだが。
Java/C#/Perl(use utf8)ならUTF-8、C/Perl/PHPならそのソースのエンコードにあわせている。
まあ動いてしまえば何でもいいんで(もちろん負荷を極力下げる時はコードの変換は減らすけど)、
UTF-8に統一しろとか、eucJP-msに統一しろとか言わないで、色々試して内部の動作をしっかり把握した方が後々のためだと思う。
文字コードに辟易するなら4.0にしておけ。
動いた後で変更することも想定すべき。
携帯系のサービス始めたい(sjis)、j2eeに移行(utf)、メール配信(jis)
客の要求はプログラム言語の都合なんて考慮してくれないよ。
そんな場合はJavaが最適だな
そもそもJavaの内部コードはutf8じゃないし
>>557 >別途オートインクリメントのテーブル持ってそっちで伝票番号管理するのが運用上、柔軟に対応できる
なんだ? この唐突な発言は? 何に対してのレスなのか、何を根拠にした発言なのか謎だなww
>>567 SJISしか使えない携帯はもはや過去の遺物なわけで、
最近の携帯はパソコンとほぼ同じ文字コードを備えてるわけだが。
>>569 最新の携帯にしか対応しないなんて選択はあり得ないわけで……。
正直、DBをUTF-8に出来るチャンス(?)があるなら
UTF-8にしといた方が楽だと思うよ。
>>571 「最近」とは書いたが、「最新」とは書いてない。
実際、2年半近く前に発売されたVodafone機でさえも、
PCと同じ文字コードが使える。
つーか、俺はむしろSJISしか使えないような携帯(3〜4年以上前)にはあえて対応しないポリシー。
どうせそんな古い携帯じゃ画面も狭いし速度も遅いしパケットも金かかるし、
結局気持ちよく使ってもらえない。だからそもそも対応する必要もない。
>>573 君のポリシーは知ったこっちゃないんだけど。
VodaはDoCoMoやauと違って絵文字でややこしいことになって、結局Binaryで誤魔化したような記憶が。
sjisに対応しませんで済むクライアントなんて存在しない。
携帯サイトってのはすべての携帯からアクセスできることが要求される。
utfでサイト作ってはしご高を入力させて、メール(jis)で使えないってのはよくあるパターン。
>>574 お前のポリシーも知ったこっちゃないけどなww
>>576 >sjisに対応しませんで済むクライアントなんて存在しない。
ああ、なんて可哀相な下請け屋さんの歯車A、
>>576氏。
/ : 》:、∩
(===○=)/ この中に一人テンパッてる人がいまーす
__ / ⇔ /
\⊂ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
...|| ̄ ̄ ̄ ̄||
数年後には、みんなunicodeつかってるだろうな
そんときも、強気でいられるかねえ
態度豹変して、sjisくそとかいってたりして
不確実な未来を気にして現実が見えていない
そんな人がどこかに居ました。
おもくそスレ違いなんだが、
正直、今時は提案次第なんジャマイカ?
うちは代理店切ってから、
ナンセンスな「あーしろ」「こーしろ」ってことが無くなって快適。
>>579 は? 誰に対して言ってんだ? 「sjisくそ」は誰にとっても常識だろう。
>>581 要は下請けで末端労働者をやるか、元請けで自分の責任で創造するか、その違いだな。
sjisの携帯持ってる香具師を相手にしなくて良いなんて良い身分だな。
どんな携帯サイト?
いいねシロートプログラマは。
サイトはページビューが命。ページビューのためならSJISだろうがUTF8だろうが
なるべく多くのキャリヤ・機種をサポートすることを目指すべき。
自分の文字コードのポリシーなんぞ糞食らえ。
文字コードオタ。ビジネスセンス磨け。
>>582 一回でも、携帯キャリアと直接仕事してみろって。
キャリアに向かって、
「SJIS糞だからSJISしか表示できない機種はサポートしません」
と言ってみろってw
言っておくが、脳内での数年先の事じゃないよ。
リアルな今、現在の話だからね。
sjisは糞だから、MySQLでは使いません、で何の問題があるのだろうか…
sjisが必要なら、View part で変換してやれば良いだけだろ。
>>586 その提案は全く問題なし。
携帯サイトの話し。
結局mysqlでサイト構築するならどの文字コード使うよ?
GB2312
ASCII
要するに携帯ビジネスに係わると心まで腐りきるって事だな
文字コードは何を使おうがかまわんが、まともなエンジニアを使う必要がある。
しかしまともだったエンジニアも携帯に染まって邪悪になる
まずは「まともなエンジニア」を定義しなきゃな
「まともなエンジニア」なら「文字コードは何を使おうがかまわん」とはいわないと思うがな
sjis 糞
EUC UTF8 sjisの一部の文字が変換できなくて文句が出る
というわけで、binaryにして好みの変換処理させるってことで終了
「まともなエンジニア」とは
携帯ビジネスに手を染めた事がなく、コード系にSJISは使わないエンジニアの事
つまり誰もが言いたいのは、
「俺が一番まともなエンジニア」
ってことで糸冬了
まじめな話、MySQLのcharsetはasciiにしておいて、UTF-8の文字列を突っ込むのが一番良いと思う。
基本的にスクリプトもDBも全部EUCで統一。
あとは携帯向けに入出力する時だけ、
入力直後・出力直前に文字コード変換かませばOK。
携帯のために内部エンコーディングまでSJISにするバカがいるのだろうか?
>>601 携帯屋と話すると、DBをSJISにしろSJISにしろと煩いよほんと
apacheなんか、sjisしか受け付けないように設定されていて、
euc/utfのhtml入れると確実に化ける
携帯屋のレンタルサーバ最悪
>>596 > EUC UTF8 sjisの一部の文字が変換できなくて
これ何て字?
携帯用途でeuc/utfを使おうとするのが間違い。
逆にeuc/utfがまともに表示できたら携帯で見れなくなってクレーム出るよ。
SJIS入力からEUC記録と、EUC記録からSJIS出力でたくさんの情報が失われる訳だが。
SJISで入出力する可能性があれば、SJISで記録しとくのが鉄則。
まあ、そうだな。
でもJava(JDBC)とかでは強制的にUnicode変換が行われるわけだが。
絵文字、マル数字 (出るかテスト@AB)色々ある罠。
Javaでもバイナリで扱えばいいよ。
もちろん独自拡張しないと使えないが。
つーか日本語自体stringとして扱えないし。
うちは全部NECJISで統一。
ホント携帯のSJISは公害だな。
腐れSJISに対応させるためのコストは全て携帯電話会社が負担すべきだ。
俺なら開発当時に決定を下した技術者は全員縛り首にする。
>607
絵文字はともかくマル数字くらいUTF8にもあるだろ。
それは変換元文字コードの指定が変なんじゃね?
SJISっぽいのと言ってもCP932とか色々ごちゃごちゃしてるし。
前から疑問だったのは○ゼロが無いこと
じゃ、この話、MSが諸悪の根源で OK?
OK。
有名なところでは、WAVE DASH→FULL WIDTH TILDEとかな。
MSはなにかにつけ諸悪の根源
>>613 ぐぐったところアスキーの山下良蔵という男が犯人らしい。
いままで西和彦か古川享が犯人だと思ってたよ。
文字コードの話はどっか他所でやってくれ
誰も話に出してないが携帯屋が文字コードを変えないのにこだわるのは
携帯独自文字のせいジャマイカ
MSは諸悪の根源。
windowsも、それを使う馬鹿も諸悪の根源
どこの店でもそうだ、windows関連商品周辺はドブ臭い。
でもウィンドウズが無かったら日本のインターネットはこんなに発展しなかったけどな。
ユニックスユーザだけじゃUUCPばっかりで全然だめだったし。
SJIS対応携帯が出た頃には、まだ静的HTMLが主流だったからな。
裏にDBがあるような動的生成のページなんて考慮しなくてよかった。
今はutfでいいけど、10年後のウェブを予想して製品作るのはムリポ。
法律で更新に制限がある機器に、発展中の規格・仕様を盛り込んで発売しているのがそもそもの原因じゃね?
SJISしか使えないブラウザをファームで組み込んだメーカーが一番馬鹿だと思うが。
うちに注文なさい。
文字コードなど面倒なことは全てうちで吸収し納品しますよ。
お客さんはコンテンツ作成に集中してください。
ええ、それが仕事ですから。
SJISからUTF-8に変換して困るのって、メジャーどころではどんな文字があるの?
>>624 別に無いよ。
cp932をsjisだと勘違いして、utf-8に変換しようとすると、できない文字があるだけ。
〜
MSのOS上で、sjis、sjisと呼ばれているものは、実際にはsjisでは無く、cp932と言う文字コード。
大概のweb言語(そういう言語カテゴリーがあるかどうかは置いとく)で、文字コード変換の際に、sjisとcp932は別物として扱える。
そこら辺をごっちゃにして、cp932をsjisであると指定して、utf-8に変換すると、怪しい事が起こる。そんだけ。
630 :
NAME IS NULL:2006/09/29(金) 13:19:13 ID:r+KcQpd7
マジかよ
>>627 の内容見てからモノ言えよ
ちなみに、sjisとcp932を別の物として扱うのはiconv使っている物やDBが殆どで、
apacheなんかはsjis/euc/utf8の区別しか存在しない。(文字コード変換しないからいいじゃねーかと言われればそうなんだが)
nkfにもcp932なんて分類は無いな
まぁ、普通はcp932の別名の、sjis-winとかだろうからなぁ…
>>632 >>627の内容こそが、cp932の説明じゃないの?
原因
Code Page 932 テーブルは相互変換できない (一方向への変換は行えるが逆方向への変換が行えない) 重複コードを含みます。これらの重複コードは、NEC エンコードのために必要です。
Code Page 932 ってcp932の事でしょ。
まるでGPLv3のようだ
旧shift-jis = JIS1,2水準
cp932 = JIS1,2水準+IBM拡張漢字+NEC拡張漢字
sjis = JIS1,2水準+JIS3,4水準
JIS3,4水準が制定されたとき、IBM拡張漢字+NEC拡張漢字が使ってた領域と重なる形で
JIS3,4水準漢字を割り振ってしまったので互換がなくなった。
(重ならない形での拡張は漢字2バイト固定を守ると不可能だった。)
NECとIBMが「新旧コードが入り混じって混乱するだけ」と反対したが押し切られた。
結果その通りになった。
shift-jisはJIS1,2水準のまま留めて、unicode系やiso-2022系の体系へ
移行するべきだったのだろうね。とくに携帯。
>>636 それもあるけど、それだけじゃない。
cp932とShiftJISはユニコードに変換する時の変換テーブルが違う。
(これについてはeucjp-msとeuc-jpについても同様)
なので、JIS第1、2水準の文字だけを使っていても、
ユニコード系の文字列(utf-8とかucs2とか)から
レガシーエンコディングにするとひどい目にあったりするのですよ。
charset=cp932なんてページは無いしRFCにも無いよ。
ウェブの世界ではcharset=SJISしか指定できない。
どう扱うかはブラウザ依存。
IEなんてutfで送ってくる場合も有るし。
>>638 わからんかな?
charset=SJISで指定してやると、winからの入力は、shift-jis コードでは無く、cp932コードで返してくる。
だから、そのcp932コードを、shift-jis コードだと思って、utf-8に変換何かをするとえらい目に会う。そう言う話。
でだ、例えばPHPなんかでは、
$str = mb_convert_encoding($str, "UTF-8", "SJIS-WIN");
てな感じでutf-8に変換してやると良い感じだよ、と言う話をしている。
sjis-winってのは、cp932の別名だ。
なんていうか、文字コードの話って結構かみ合わないよね
642 :
sage:2006/09/30(土) 00:07:03 ID:cXhqQ9DZ
JIS規格決めた馬鹿役人どもは親類縁者に至るまで全員死刑にするべきだな
VistaではちゃんとUnicodeにしてくれるの?
w2kからすでにユニコード。
問題なのは携帯も含めた家電って10年ぐらいは平気で使われるってこと。
インターネットの進化のスピードには馴染まない。
STBとかインターネット家電なんかでも同じ問題を抱えている。
そもそも日本人の居ないところで国際規格が決まってるから不整合は多い。
マイナー言語の宿命。
英語圏はlatin1もiso8599もユニコードも全く問題無いし。
5.0 と 5.1 と 5.2 の位置付けがよくわかりません。
5.0→安定板?
5.1→???
5.2→開発版?
647 :
NAME IS NULL:2006/09/30(土) 02:13:46 ID:fG+IXpWd
ホントに文字コード乱立は頭に来るね。
しかも日本語コードに外人が関わると余計に無茶苦茶になる。
こうなったら
「日本人の、日本人による、日本人のための統一日本語コード」
を制定すべきだな。今すぐ。
つTRONコード
>>648みたなのはヒッキー日本人が考えそうなことだw
ほとんどのソフト開発は外人がやってるんだから、あたりまえじゃねえかw
UTF-8対応してるだけでも、ありがたいと思えw
日本語でうだうだやってる時点で規格作りには参加できないのが日本人。
反日のチャンコロにむちゃくちゃな提案されてしまって規格化されてしまうのがヲチ。
声が大きい奴ってのはたいていキチガイだからな
歴史的には、EUCの方がSJISより後に出てきたんだけどな。
MySQLは、日本人のため「だけ」にあるソフトじゃねえんだよw
勘違いすんな、くそジャップ
どうぞどうぞ、携帯はsjisでやってください
日本の携帯なんて外人は使いませんから
アパルトヘイトキタ━━━━━━(゚∀゚)━━━━━━ !!
>>651 >ほとんどのソフト開発は外人がやってるんだから
だからこそ、「日本人による、日本人のための」って言ってんだろうがクズ野郎。
技術者にはテメーみたいな日本語もロクに理解できないバカが多いから、
この文字コードの異常性を誰も指摘できず、外人の押し付けを甘んじて受けてるんだろ。
このチンカスどもめ。
>>657 出た、月9ドラマなみの綺麗事だけ理想論者。実現できもしないのにw
まぁそろそろスレ違いごっこも飽きてきた感じで。
流れを切ってすみません、MySQLで質問です。
なぜ
>>657はこんなに取り乱してるのですか?
>>657 だったらHiRDBでも使えよ。
あれ日本人が作ったんだろ。
MySQL+PHPでApache2よりSSL通信で接続する際にエラーメールが届くようになりました・・・・・。
Starting MySQL................................... ERROR!
(13)Permission denied: make_sock: could not bind to address [::]:443
no listening sockets available, shutting down
Unable to open logs
これってどうやって直るんでしょうか?回答お願いします。
>>663 他に理由あるかもしらんが、
httpd を root からでなく起動してると
そうなる。
権限がなくて443ポートが作れないんだろ
ポート0-1023まではたしかroot権限が必要なはず
文字コードでこんだけもめるのは、
6割がほとんど文字コードのことを理解していない、
4割が分かったつもりで分かってない、
で、だいたい理解しているってレベルですら、ほんの一握りしかいない、
ってのが原因と思われ。
>>657 当然ながら、今までの策定経緯を知った上でほざいてんだよな?
知ってる。
馬鹿とキチガイとヤクザと腐れ官僚が集まって糞尿を掻き混ぜていた。
>>666みたいな知ったかが一番困る。
能書きだけ垂れて、結局現状を何も変えることが出来ない。
>>666は、小泉改革を批判してたバカ抵抗勢力などと全く同じ類のキチガイ。
sjis厨は日本人による日本人のためだけのDBでもつくってなさいよ
期待してるぞ(大爆笑
ここはDB板なわけだが
これはもうだめかもわからんね
utf使えば良いじゃん。おまいらアフォ。
歴史的にはjis(iso-2022-jp)が最初。昔は7ビットしか通らなかったし。
だからさぁ、文字コードの問題は、専門のスレでも立ててそこでやれよ。
あーあ
なんでMySQLに文字コード機能なんてついちゃったんだろ
>>670 なんでそうなるんだよバカが。
まず最初にsjisこそ無くすべきなのに。
文字コードネタはMySQLに限らないネタなんだから、
別スレでもたてて他でやってくれないか?
まあ4.1で味噌を付けたからな。
あれでMySQLの日本語処理はダメダメみたいな感じになったし。
携帯のバックエンドでmysql使うならsjisは必須。
オラクルがsjis対応してるから、携帯の案件ではmysql使わなければ良い話だったりするが。
4.0以前のように、文字コード依存せずに単に入れて出すだけにするのがシンプルでわかりやすくて問題も起きないだろ。
文字コード変換したい奴は自分でやれよ
50音順とかの特殊ソートしたい奴も自分でやれ
これで万事解決
mysqlのbulk insertっていう機能について質問です。
この機能は、複数のデータを一回でinsertしてくれるらしいのですけど、
既に登録済みとかで、insertに失敗した場合、失敗した分のデータを取得することは
できますか?
>>680 多分遊びで使ってるんだろうからそれでいいって言ってんだろうが、
そんなこっちゃエンタープライズに適わんだろ。
実際は「文字コード変換は自前で」って方が解りやすくあるとは思う。
バイナリで保管汁!ってのもアリはアリだろう。
SQLインジェクションが無くならないわけだ。
プリペアドステートメント使ってればSQLインジェクションと無縁?
>>682 出来合いの機能を使うだけがエンタープライズじゃない
出来合いの機能しか使えないなら大規模設計・構築なんか辞めておけ
>>687 出来合いの機能?
多用途にリソースと接続できることのメリットを言ったんだが?
だから単機能的に遊びで使ってんだろう?と。
>>686 プリペアドステートメントの実装がエミュレーションだと駄目だよ。
中でsprintf()してるだけだったり。PHPのdbxはそう。
sqliteの何かの言語のライブラリもそういう実装になっててボカーンとした記憶がある。
無自覚にSJIS使ってるような連中がプリペアドステートメント使うとは思えんけど。
全文検索をしようとMySQLにSennaを組み合わせようと思っています。
Sennaの制限から、テーブルはMyISAMになります。
そうなると行レベルロックができなくなってしまいます。
データの更新がそれなりにあると予想されるので
なるべくロックの粒度を小さくならないかと思い、
MySQLのパーティショニングというのを見つけたのですが、
これを使えば、一つのパーティションだけロックをかけたり出来ないでしょうか?
一応探したのですがはっきりとした情報が見つかりませんでした。
MySQLのバージョンはなるべく新しいのが良いですが、
今のところ特にこだわってはいません。
宜しくお願いします。
>>690 もしかして、Sennaで行レベルロックをしたいという話?
もう一回、Sennaのマニュアルをよく読んでみれば?
更新を少なくすることを考えた方がいいんじゃないの?
>>690 Sennaがもたらすメリットの方が多分上回るかと。速いよ。
そもそも、そのレベルでSennaを組み合わせたMySQLをビルド出来るのかと、、、
>>691 Sennaがトランザクションの実装が出来ていないためInnoDBが使えない。
ということみたいなので、Sennaと行レベルロックは直接関係ないようです。
なので、MyISAMでパーティションレベルでのロックはどうなっているかという話なんですが。
>>692 多数のユーザーが頻繁に書き込むシステムなので不可能です。
>>693 問題なのは検索の速さではなく、同時更新時のパフォーマンスです。
>>694
多数のユーザが書き込むデータベースと全文検索のデータベースを分けることは考えないの?
mysqlでエンタープライズって無謀です。オラクル買え。
なんとなく全文検索ってそういう用途は向いてないと思う。単純に言うと設計が悪い。
常にリアルタイムで全文検索できないと逝け無いの?
普通は索引鯖を別において、そっちで定期的(一時間毎とか)に索引生成だよ。
具体的な用途が気になるなあ。
レプリケーションすれば?
の一言で終わると思うが。
オラクル買ってもいいんだろうけど、
>>690のレベルだとナニ使っても
かわらんような希ガス。
699 :
NAME IS NULL:2006/10/03(火) 21:57:13 ID:V7gZVpYY
WindowsXPで、MySQL-4.1.20を使用しています。
CREATE TABLE文で、
password VARCHAR(255) NOT NULL,
というカラムを持つテーブルを作成しようとすると、
Syntax error or access violation: 1071 Specified key was too long; max key length is 1024 bytes
というエラーが発生します。
ここで指されているキーとは一体何を指すのでしょうか。
ご教示お願いします。
>>698 いいかげん他人を侮辱するのは辞めたほうがいいと思います。
むしろあなたの程度が知れます。
>>699 すでにこのスレで語り尽くされた事だが、、、
Windowsを使うのが悪い。
703 :
698:2006/10/03(火) 22:31:10 ID:???
漏れは今日はじめてカキコしたのに、なんでこんな事言われるんだろう?
被害妄想逞しい690だな
704 :
699:2006/10/03(火) 22:43:14 ID:???
PHP+MySQLなので、実用段階での動作環境はUNIX系になるのですが、開発はどうしてもWindowsですねぇ・・・・
とりあえず利用できる最大文字数の241byteで一次しのぎをしておきます。
WindowsにVMware仕込んでMySQL動かせば?
>>699 アンチWin厨はスルーしる。
そのカラム自体とは関係ないんじゃないか?
そのテーブルのキーの定義はどうなってる?
707 :
699:2006/10/03(火) 23:31:22 ID:???
>>706 任意文字列で最大100byteのidと、パスワードのハッシュ保存用で最大255byteのパスワードがプライマリになっています。
>>698 レプリケーション?
「多数のユーザーが頻繁に書き込むシステム」って言ってるぞ。
レプリケーションで正しいのでは?
更新系はマスターにしておいて全文検索は複数のスレーブに割り当てるって意味だろ。
MySQLのマスターからスレーブの転送は非同期だし。
あるテーブルと同じスキーマをもったテーブルを、名前を指定して新しく作成するには
どうすれば出来ますか?
>>711 CREATE TABLE hoge LIKE fuga;
ちなみにldapもレプリケータできるので負荷分散可能。
「元から入っている値」に +1 した数をインサートしたいのですが、どのようなやり方になるでしょうか?
ご教示お願い致しますm(_ _)m
>>716 update文一発で書ける方法があったような・・・
>>717さん
一回セレクトでとってその値に+1する手もあるのですがそれだと効率悪くて。。。
もし思いだいましたらお教えくださいませm(_ _)m
>>718 教えてよう。でも次回からはググレ。
insert into hoge (a) select max(a)+1 from hoge;
>>719さん
ありがとうございます!!m(; _ ;)m
次回からはもっとぐぐります!
こうゆう抽象的な事例は検索が難しいですね。。
VIEW は作成したら DROP VIEW するまで消えることはないのですか。
サーバの再起動してもいいですか。
>>721 ふつうなら消えないね。
心配ならやってみりゃいーじゃん。
dateというフィールドに、now()をinsertして、
ORDER BY date DESC と指定しても、日付順に表示されないのですが
どうすればいいでしょうか?
>>723 型とかクエリとか見直してみればいいと思うよ
dateをidとかにすると正常にid順で動きます。
dateの型は、dateにしています。
>>725 dateは予約語なので、フィードに使うならクォートが必要。
これらのキーワードでググってみ。
>>726 ありがとうございます!でも、探し方が下手で見つからないです。。
すいません。
'date'みたいにするのではないですよね?
これだと、エラーが出ちゃいます。。
あと、予約語と知ったので、フィールド名をupdayみたいに変えても
結果が変わらなかったですが。。ホントへたれですいません。
>>727 MySQLのバージョンと、どうソートされないのかを書いて
>>727 インサートしたデータは正しいの?
同じ日付とかじゃないの?
730 :
727です:2006/10/05(木) 20:01:42 ID:???
すいません。同じ日付でした。
date型は時間は含まれないのですね。だから、順番どおり表示されなかったっぽいです。
datetime型に変えたら、ちゃんと表示されるようになりました。
でも、date型だと、同じ日付の場合ってどうゆうふうに順番が決まるんですか?
>>730 疲れる原因だな。
同じ場合の順番は取り出した順番だろうがそんなのどうでもいいじゃね。
オートインクリメントのカラムを作っておいて、そのカラムをorder ascすると挿入順で表示されるよ。
エクセルとかアクセスみたいに表状の入れ物を想定してると、rdbでは理解がしにくいかもね。
全く別物だから違う概念として認識する癖をつけておいた方が良い。
timestamp型にしときゃいいじゃん
んで取り出すときにDATE_FOMAT
>>734 timestampはUPDATEで更新されちゃうからなー。
データベースからデータをとる場合
入ってる情報が1つのときや1万のときでも負荷は変わらないんですか?
変わる場合、どれくらい違うものなんでしょうか?
>>736 負荷って何を指して言ってる?時間?機材?
100万件のデータがあるので、検索に5分かかりますというのが
通用すると思うか?また、1つの株に10万件のアクセスが同時に来たら?
あまりに漠然としていて、ケースバイケースとしか答えられない。
>>753 TIMESTAMP型のカラムを2つ以上作っておくといいよ
株屋?
1万程度なら簡単に検証できるだろうから、カキコする前に結果を晒してみたら?
>>736 取り出すのにかかる負荷は変わらないよ
容量が大きい分コストパフォーマンスはかかる
>>737,
>>739 「相対的且つ複合的に」ってことじゃなくて?
頭固いッスね、おっさんたち
>>736 変わる。データ量が少ない方が負荷が少ない。当たり前だろ。
>>740 頭柔らかすぎて脳味噌溶けてるぞ。
>>741 まだかよ。残業して待ってるし、急ぎなんだが。
You は shock
今7800件目だ、もう少し待ってくれw
747 :
NAME IS NULL:2006/10/06(金) 21:12:01 ID:bDRzLVyV
すまんおしえてくれ。
テキストボックスが4つくらいあってその中に文字入れて
DBから抽出したいんだが。
WHERE〜ANDで結ぶとテキストボックスに全部入力値がないと
抽出できないじゃん。
空欄のテキストボックスはスルーして入力された単語のみで
抽出するにはどうすればいいの。。。
>>747 1,入力値の有無を判定してWHERE句を文字列連結で作る
2.完成したSQLを使ってPREPARED STATEMENTを作る
3.PREPARED STATEMENTに入力値を入れて検索する
>>735 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
だと、UPDATE時にも更新されない。
751 :
NAME IS NULL:2006/10/06(金) 22:08:39 ID:bDRzLVyV
752 :
746:2006/10/06(金) 22:28:12 ID:???
今7811件目
げ!クライアントが無理言ってきた。
order by で 1 2 3 じゃなく 2 1 3 とか任意に並べる方法ってある?
別なカラム作るしかないかな・・・
>>753 別に無理でもなんでもなく、良くある作りじゃないの?
別テーブルで、プライマリーキーと並び順を持たせておいて、
LEFT JOINで繋げて、ORDER BY
756 :
753:2006/10/06(金) 23:53:27 ID:???
>>754 できた!ありがトン! ・・で、次の改善要求はっと・・(汗
よくWebと分かったな。慧眼。
現場はむちゃくちゃな要求が来るからねえ。
今日入力したデータ間違ってたから消してとか、最後に入れたデータだけ消してとか。
いろいろ仕込んだテーブル作っておかないと泣くことになる。
一万件まだかよ。泊まり込みで待ってるぞ。あとで請求書出すから住所と名前晒しとけ。
>>759 >>今日入力したデータ間違ってたから消してとか、最後に入れたデータだけ消してとか。
まだいい方。
「重要なデータだからうっかり消したりしてしまわないようにしてほしい」、と言われて
んじゃ消し込みフラグでいいですかというと
「いや、削除といったときはちゃんと消せ」といわれて
本当に消しますかとか消すにはパスワード入れるとかそういうのを追加した。
数日後「間違って消しちゃったから戻してくれ」
お前システム使うな。マジで。
・人間は必ず間違う
・ユーザは人間の中でも特によく間違う人種である
・人間はいつも出ている警告は無視するようになる
・人間は理解出来ない事を無視する
・人間は自分に都合の悪い事実は隠す
・ユーザの要望を鵜呑みにするとユーザから怨まれる
・ユーザの要望のごく一部を選んで実現すれば感謝される
・人間は柔軟性の高い生き物である。どんなに劣悪なUIでもすぐ慣れる
>>761 まったくもってその通り。
というか、これってどこかの格言だったりするん?
そうそう。確認させても消しちゃって入力し直すの面倒だから元に戻してくれとか。orz
最近履歴重要とか思い始めてる。一ヶ月前まで入力履歴取っておけばクリック一発で対応できそうな悪寒。
鯖も増強する理由もできるし現場も気軽に入力できていいんじゃね?
元々の紙の伝票の時代には、あとから差し替えとかむちゃくちゃな業務フローだったから再計算の手間が省けるだけでも現場は喜ぶ程度の目標でいいやと妥協しまくるこのごろ。
消してって要求は、本当に消さずに見えなくしたり無視するだけで十分だと思う。
理系頭で馬鹿正直に対応すると苦労するだけ。
経理とか同じようなこと遣っててノウハウ持ってる香具師と、交流持つとその辺の対応ノウハウを教えてもらえるよ。
ついでに簿記の勉強もして教えてもらうのも仲良く成るきっかけ。
警告いっぱいは逆効果だね。ウィンドウズ自体がその典型(w
無意識に「はい」を押しちゃってるし、表示しても読まないし、表示出してる意味なんて考えてない。
その辺のノウハウはヒューマンエラーとかヒューマンインターフェースの本にいろいろ載ってる。
社内コンサルタント的な立場に立って、ユーザの要求を元に、ユーザすら気づいてない真の要求を洗い出して実装しないと、ユーザの満足度を得るのは難しい。
仕様書どうりに作っておしまいじゃダメポ。ユーザはまともな仕様書作る能力ないし。
劣悪なUIは批判されるだけだから立場が悪くなるだけ。センス悪いとも思われるし、良いことは無いよ。
一度休むと復帰するのは並大抵じゃないんだな
連休明けなんか、もう仕事始める気にならないね。
温泉ランドとかいくだけで結構気分変わるよ。
本当は旅行のがオススメだけど。
最近コンサル必須な案件ばっかり
しかも中盤で気付かされる
鬱
話を流れをぶった切って申し訳ない。
MySQLの命令の中に、データを指定した文字コードで取り出すってなかったけ?
UTF-8で入ってるデータをShift-JISに変換してもらってから取り出すみたいな。
すいません
WindowsでMySQLますが、それをLinuxに移行したいのですがどうすればいいのでしょうか?
教えてください。
>769
CAST() か CONVERT()
utf8で入ってたらutf8のまま使うのが問題が起きにくいよ。
sjisで使うなら最初からsjisで入れておくべき。
>>771 ありがとうございます。
やってみます。
困った
mysql.sockファイルが無いと怒られてMySQLを起動できなくなった・・・・
OSはFedora Core5。
yumでインストールしたMySQL最新版。
.etc/rc.d/init.d/mysqld status
にすると起動しています。と出るが、
mysql -uroot -p としても起動できずmysql.sockファイルが所定のディレクトリに
無いとでる。findでmysql.sockを検索しても見つからない。
未だにその問題出るのか。
昔の記憶なんで間違っている可能性が高いが、
mysqldプロセスをkillで治ったような気がする。
ただ全然違うエラーでも「mysql.sockがない」の
一言で済まされる場合があるから、別の問題の
可能性もあるよ。
>>775 無いからエラーが出てるんでしょ。
エラーメッセージにパスが出てない?そこにその名前で空のファイルを作れば桶。
ないなら、プログラムで勝手につくればいいのになw
>>776-777 情報サンキュー。サブシステムがロックされてると出たのでロックファイルを削除とか
したけどダメだった。touchコマンドでsockファイルを作ってもダメだった。
ねっとでいろいろ探してみたけどどれもうまくいかなかった。
で、ディスクが怪しいと思ってfsckコマンドを実行したらとうとうFedora Coreが起動しなくなってしまった。
ということで、今はそれどころじゃないんですよ。ありがとうございました。
しばらくはレスキューディスクを使ってFedora Coreの復旧作業をしています。
>>772 4.0で使うからCAST()かな。手元の本では使い方がイマイチ分かりにくいです。
select cast(oldchar as 'utf-8') from table where oldchar!='';
て、感じですかね?
>>773 サンクス。それは分かってるよ。
Ajaxでつかってて、外部のサイトのcharsetに合せたいんです。
fsckで起動しなくなるなんてもともとファイルシステムが壊れてんじゃない
OS再インスコからやり直した方がいいな
とりあえずすれ違いって事でLinux板で質問中です。
ではまた。
>>780 >>Ajaxでつかってて、外部のサイトのcharsetに合せたいんです。
ならデータベースの外で変換した方が…。
一箇所にまとめすぎると何か不具合出たときに
問題の切り分けが難しくなるよ。
>>783 そうっすね。今はphpで変換してます。でもまぁ、後学のために知っておくのもいいかと思って。
>>780の書き方はあってますか?自分で試せ!ってのはそのとおりですが。
id, userid, datatype(int), datakey(varchar)
というようなフィールドで構成されるタグっぽい情報の記録テーブルAがあって、
select * from A join users on A.userid=users.id where concat(datatype, datakey) = 'test1234'
ってやった場合、concat(datatype, datakey) = 'test1234'の部分はインデックスは効きますでしょうか。
あ、失礼 id, userid, datatype(varchar), datakey(int)です。
EXPLAINで試せよ・・・。
それにしても凄いテーブルだな。
>>785 効かない。
datatype='test' and datakey='1234'
の方が効く可能性あり。
789 :
NAME IS NULL:2006/10/10(火) 09:47:39 ID:OTtxV8t0
質問させて下さい。
WinXP + MySQL4.1 です。
MinGWで mysql++ 2.1.1 をコンパイルしようとしています。
gccのバージョンは3.4.2です。
g++ -c -o mysqlpp_coldata.o -g -I.. -D_UNICODE -Ic:\mysql\include -DMYSQLPP_NO_DLL -mthreads -MTmysqlpp_coldata.o -MFmysqlpp_coldata.o.d -MD coldata.cpp
In file included from const_string.h:32,
from coldata.h:37,
from coldata.cpp:27:
defs.h:34:19: mysql.h: No such file or directory
こんなエラーでコンパイルがエラーになります。
READMEにある通りインポートライブラリも作りました。
MySQL、mysql++の展開先もREADMEにある通りc:\mysql、c:\mysql++にしました。
mysql.hが見つからないというエラーのようですが、インクルードパスの指定もあって
いるようですし。
よろしくです。
790 :
NAME IS NULL:2006/10/10(火) 14:05:00 ID:+Ycq+nBK
792 :
790:2006/10/10(火) 15:48:27 ID:???
>>791 普通のテーブルになります。
「log」というテーブルの中にユーザーの処理した内容等が大量に吐かれるシステムになっていて
そいつの削除に時間がかかり手を焼いているところです。
僕の書き方が悪かったようで、勘違いさせてしまってすいません。
>>792 単純に、key_bufferをでかくすると削除が速くなる。(らしし)
あとは、無駄なインデックスを削除するするとか、固定長テーブルにするとかの
調整も可能。
>>790 Pentium4やXeonでHTがONならBIOSで切ってみるのもあり。
HTがONだと状況によってCPUを50%しか使えないから。
Windows Server に MySQLを入れて、実際にサービス運用しても使用に耐えるでしょうか?
Linux + MySQLの組み合わせは、ごまんとあると思うんですが・・・
HT最適化度合いによる。
普通にマルチスレッドだと、2CPUのつもりで動いてパイプラインが詰まる。
もちろん非マルチスレッドならBIOSで殺したのと同じく1CPUのつもりで動いて全然早くない(=HT非対応のセレロン並みに落ちる)
どんなシステムなのか興味あるなあ。
製品名とかシステム名教えてよ。
そんなの、システム構成やページビューによるって。
とは言っても具体的だって検証は難しい。というか漠然としすぎ。
798 :
795:2006/10/10(火) 23:18:26 ID:???
アクセスはそんなに多くないです
たぶん1日300アクセス程度
メインでアクセスするテーブルに1万件もいかないかと思います。
ペン3−1Gでも十分杉です。
800 :
795:2006/10/10(火) 23:49:39 ID:???
どっちかっていうと、ちゃんと動作し続けるかどうかってのが心配だったり。
MYSQLがどれだけWindowsServerで動かすことへを保証しているか・・・
キーは、Webサーバを何にするか。
このスレ相変わらず馬鹿と無知がいっぱいでオモロいわ
またはじまった
w2003srvならIISじゃないと価値が無いと思う。XPで十分だ。
つーかアクセスやSQL Serverを使わない理由は?
ところで4.1より古いのって使えるエンジンを調べるのって実際にクリエイトしてみるしかない?
show table typesはもちろん使えないし。orz
Windows上でも全然問題ないよ。
Athlon800くらいのPCで
WinXP+IIS+ASP+MySQLで仲間内用のWebサーバ立ち上げてたけど問題なく超安定してた。
806 :
801:2006/10/11(水) 11:36:45 ID:???
昔 Win2K + IIS + ASP + COM のシステムで運用レベルですげー大変な思いしたから
絶対IISはイヤだ。
2003ならちっとはマシに成ってるかも。
なぜwindows+mysqlという組み合わせを選んで茨の道を歩みたいのか...
暴利なハード&ソフト費用でバックマージンを取っているSI業者やメーカ
色の濃い企業なんかが絡むとWindows前提という案件が驚くほど多いんだよ。
hoge
id | name | val
1 | aaaa | 100
2 | bbbb | 200
3 | cccc | 300
4 | aaaa | 101
5 | bbbb | 201
6 | cccc | 301
こんなテーブルで
select * `hoge` group by name
のときの結果が
1 | aaaa | 100
2 | bbbb | 200
3 | cccc | 300
になっちまうのですが
↓のような結果がほしい。
4 | aaaa | 101
5 | bbbb | 201
6 | cccc | 301
idは時系列で付くものとして一番最後のデータが欲しいんです。
php側で配列に入れてゴニョゴニョするしかないのかな?
mysql4.0X前提です。
811 :
795:2006/10/11(水) 16:18:16 ID:???
>>804 >>808 多言語対応しないといかんのですよ。
PHP(UTF-8) + SQL Server(USC2)の組み合わせだと、PHPから読み出すのが難しい。
ODBCだとSJISで読み出してくる。エンコーディング指定もできないっぽい。
COM使ってUTF-8で読めたけど、insertでは化けた・・・
PHP(UTF-8) + MySQL(UTF-8)だと、select、insertともに、
多言語まぜこぜで、うまくいったんですね。
LinuxでPHP、MySQLでいければ何も悩むことはないのですが、
クライアントが今動いてるWindowsServerでやりたいらしいので・・・
>>805 貴重な情報thx
812 :
NAME IS NULL:2006/10/11(水) 17:08:11 ID:1EzhWZYI
create table test(
name varchar(512),
id int,
uri varchar(512),
primary key(name(512))
) type = InnoDB;
create table test2(
name varchar(512),
uri varchar(512),
primary key(name(512),
foreign key (name) references test(name)
) type = InnoDB;
上記のようなテーブルを2個作りたいのですが
ERROR 1170 (42000): BLOB/TEXT column 'name' used in key specification without a key length
のエラーが出てしまってtest2のテーブルが作れません。
教えてください
mysql4.1をつかってます。
>>810 サブクエリで古い順に並べ替えた結果をnameで group by
>>809 暴利を貪りたいなら、MySQLなんか使わずにOracle使って、年間保守も中間マージン取るべきだと思うが。
某所で見積取ったら自社の20倍の金額出されて呆れかえった
815 :
NAME IS NULL:2006/10/11(水) 22:15:35 ID:XYAr9xFv
複数のDBの同じテーブルにある全レコードのTOP30を取りたいとき、
やっぱり30ずつ取って、自分でソートするしかないかな?
>>815 イヤならテンポラリ作って 30ずつ入れてから取り出せば。
>>816 どうも
ほかのDBからSELECTしていまのDBのテンポテーブルに入れることは可能?
select intoだっけか。
普通はまともなミドルウェア内でソートぐらいするけどな。
クエリの度にソートしてたら遅くて間抜けだし。
20倍の金額でも、それに見合う信頼性や速度が要求される用途も有るよ。
mysqlで十分なところばかりじゃない。
おまいの銀行口座の残高がmysqlで管理されて、ある日バグが出てるから出金できないじゃ困るだろ?
いや、だからな
そこまでの重要・クリティカル性が無いのに、Oracleで無駄に台数増やした構成出してきたのよ
何も知らない奴が相手なら、そんな金額でもまともに払おうとするんだろうな と。
最近はクライアント側でいろいろ処理させるのが流行だな。
クラスタ化・分散化なんかも容易だし。
まあその20倍の金額に納得して払うかどうかは客の自由なんじゃね?
>>810 >>813が答えてるからいいか
過去スレ嫁
>>812 foreign key (name(512)) references test(name)だな
それよりvarcharって最大長255までなんだが?
なによりそんな長い文字列をキーにするってどうよ?
要再検討だな
>>815 ふつうにJOINしてソートすれば?
DB名.テーブル名で結合できるよ
コンサル無しで、まともに用途を伝えてないから、安全側に振ってオラクルで提案してきたのではないの?
漏れだって、mysqlのリスクが納得できない香具師には、オラクルを無難に勧めるよ。問題起きたときの責任取れないし。
無責任にmysqlを提案できる香具師ってめでたいな。損害賠償請求で氏んでくれ。
かといってボラクルなら責任とれるのかっていうとそうでもない
mysqlなら損害賠償来るけど、ボラ来るならしょうがないかと納得してもらえる。
東証に採用されてるほどの実績が有るし。
>>821 >>818 > DB名.テーブル名で結合できるよ
このことができないとずっと思っていた。
ありがとうございます。
>>818 銀行口座の残高がORACLEで管理されて、ある日バグが出てるから出金できなくても困るけどな
実際のところMySQLでバグるヤツはOracleでもバグるだろ。
まあ、楽天がSQL Serverって聞くと「だから突然深夜にメンテはじめるのか?」
とか納得してしまうけどな(w
MySQLだろうがオラクルだろうが、
「損害賠償は一切しない。コンピュータは完璧じゃない」って
契約をかましとく。これ最強。
じゃあおまいのところとは契約しないよって言われて無職に成るだけ。
オープンソースなんて使ってると競合他社に負けるよ。
損害賠償できないならオラクルの10分の一の金額でしか受け付けないとかね。
東証と同じオラクルだけど、東証も不具合出てましたねえで世間は納得してくれるよ。
mysqlなんて訊いたことも無いデータベースだと、選んだのは誰?って責任追求されるけど。
>>829 ぶっちゃけ、そんな客見たことねえし。(w
「東証と同じオラクルで」なんて話はしたことねえが、客が
納得するかは値段と保証の内容だろう。
某都銀なんざメインフレーム使っても出金できないトラブルあるワケだが、
どうやって世間を納得させるんだ?
損害賠償できないならメインフレームの10分の一の金額でしか受け付けないとか?w
#まあ、それでもオラクルよりは安いけど
にしても、ブランド崇拝があるのは否定できないが。
それだと、一昔前だと「ライブドアで使われているMySQL」と
言えたって事なんだろうか?
Webのソレとは畑が違うのでアレだが。
FreeBSDやLinuxを鯖を3000台以上運用している技術なんかは
素直にでたいしたものだと思う。
HiRDBなんか聞いたこともないDBに分類されるだろうけど
東京三菱UFJで使われていると言えばブランド信者も
納得するんだろうか?
変なしがらみがなければHiRDBなんか使う気もないし
客にも勧めないんだが。
>>832 一昔前にライブでいいんじゃない。今ならミクシィあたりか。
でも新興や楽天みたいにトラブル連発する所言ってしまうと
後で連想されてしまうから危険だねぇ。
下地のある銀行とかのほうがいいね。(銀行でさえ出るんだ、と
ポジティブに考えてもらえる 笑)
まぁどっちにしても、見たこと製品でも「NASAで開発された」だけで
みんな納得したりするわけで。
Oracleを使わなければいけない案件ってサ
ソフトウェアベンダーが「Oracleじゃないと動作保証しません」って
ケースなんじゃねーの?
自社で鯖とシステム+アプリをパッケージするなら別にDBはなんでもいいけど。
個人的にはオープン系が嫌ならDB2にしとけと思うけど。
Oraの半額くらいだし、機能的に負けてないし。
HPのテキトーな鯖にredhat+Oracle入れるのは個人的にビミョーな感があるんだよな。
どーせOracle入れるならSolarisに入れて専用の技術者込みで買ってくれれば、
顧客も満足度高いと思うよ。
DB2で楽したいならiSeries(AS/400)買えと同じ感覚。
1,2個くらいのプロセッサ積んだ鯖で使うDBだったらMySQLで十分だと思うし、
そこからの安定性とかは使う側の問題だし。
いまやMySQLも含めてほとんどのDB製品が使う奴の脳よりも安定してるからな
>>829 そもそもOracleも製品に帰する損害補償なんか謳ってない。
結論:
ダメな奴は何をやってもダメ (AA略
メインフレームで万全な体制で業務を行っていましたが、申し訳有りません。
だと、世間はしょうがないと納得するけど、
無料のリナックスでコストダウンして業務を行っていましたので、申し訳有りません。
なら、世間はもっと金かけてまともなシステムに汁と叩く。
銀行系とか手数料取ってるのに無料のmysql採用で不具合出してたら客は怒るのは当然。
無料のリナックスに、無料でダウンロードしてきたオラクルが無意味なのは同意。
サポート期待するなら、ソラリスでオラクルだよな。DB2ならAS400ぐらい使わないと。
サポート丸投げで返答待つだけのOracleよりも、
オープンソースで「いざとなったら自分で修正できる」システムの方がマシだと思うけどな。
修正できるだけの技術・能力があればの話だが。
東証やsuica位のシステムになると、確かに「mysqlでできるんか?」って気はするが
一応、海外ではクレジットカード会社での採用例があったような気も。
実績的には「全世界で一番使われているデータベース」じゃなかったっけか
>>839 AS400なんていつの時代のシステムだよ と思ったけど、名称消滅してるんだな。
http://www.atmarkit.co.jp/news/200010/05/eserver.html まぁ、メインフレームかラックサーバか なんて、その時代時代のトレンドで決まるようなもんだし。
>メインフレームで万全な体制で業務を行っていましたが、申し訳有りません。
>だと、世間はしょうがないと納得するけど、
いや、してないから。(w
だからUFJと三菱の合併の時も金融庁がクレームつけてくるし、
地銀のシステム共同化も各省庁がクレーム(?)と言うかガイドラインを
提示して、簡単にシステム変更とかさせてくれない。
結構厳しい資料の提出をもとめらまつ。
ちなみにそこで無料とかオープンソースとかはまったく関係ない。
本当に使う側の問題。
>>840 AS400は今でも健在だと思う。名前が(w
まあ、タダとは言わないが基本セットでWebSphereAPサーバーに
Java1.5とWDScやら各OSのDB2にAPサーバーセットを
オマケにつけてくれるシステムはオープンソース系以外では
コレだけだろ。
デフォでtomcatにapache2入っているのでオープン系ソフトなのに
IBMがサポートしてくれるし、初心者(?)にもお勧めだ。
InnoDBのデータベースへdumpしたデータを読み込ませると。
下記のエラーになりんす。
どうすればいいでしょうか。
ERROR 1005 (HY000) at line 61: Can't create table '*****.frm' (errno: 121)
どんなテーブルをダンプしたのかと、どんなinnodbテーブルを作ったか示せ(10点)
オープンソースで自分で修正できる保証も無いけどな。
手に負えない場合って無いの?
オラクル採用の三菱ufjから顧客が逃げることも無いし地銀から逃げることも無いよ。
でもmysqlを使ってるミクシからはユーザも株主も逃げまくって株価暴落だ。
そもそも金融機関のようなミッションクリティカルな用途で無料のmysqlなんて使ってるの?
お前等、MySQL vs Oracle とかのスレでも立ててそこでやれ。
なんか金融機関の仕事した事ない人間の妄想が
「金融機関は…」とかボラクルと連呼しているのは妙な感覚だな…。
金融機関のどの業務がミッションクリティカルなんだよ(w
ATMやCD機だって普通に止まるし人を待たすぞ。
それに金融機関だって顧客逃げるっつーの。
これかモラクル信者か…。
このスレはMySQLの使い方だけじゃなくて、案件の事まで面倒見くれるんですね。
こないだの携帯案件の事といい、至れり尽くせりw
動かなくってもブランドで許してもらえるとか書いてるバカがいるけど、
今ってそんなやつがホントに横行してるらしいな。
最近クライアントに、「御社はちゃんとしてますねぇ」って言われることが増えた。
ホントにどうなってんだか。
>>848 そりゃ、女性ものバッグに疎くて
「これはシャネルのバッグです」って言われれば、
あなんか良さそうな物だ、と思うだろ?
Linuxが無料とか言ってるけど、Redhatって有償じゃなかったか?
あとMySQLも商用目的だと有償なんじゃないか?
しかもミクシの株価暴落はシステムの問題じゃなくて、
利用者と運営の問題だろうに。
こういうヤツはシステムが障害起こしたら「オラクルが悪いんです。ボクは悪くありません」
とかぬかして客を真っ先に怒らすタイプだろうなぁ。
商用目的でもGPLで使えば無料だろう。
>>850 ミクシィ暴落は、加熱し過ぎたのが戻っただけですよ。
発売直後のPS3が30万位で売買されたようなもの。
ほとぼり冷めたら定価戻りっすよ。 これ暴落じゃないよね。
どう考えてもまだ定価以上だが・・・
mixiはビジネスモデルがはっきりしてないのに人気だけであんな株価出てしまって、
話題性が無くなって来たから本来の株価に戻りつつあるだけだろう。
ひきこもり・ニート集団に広告打ってどのくらい効果あるんだ?
ひきこもり・ニート集団に職業斡旋してどのくらい効果あるんだ?
Yahooやgoogleのように多様化できないと先は無いだろ。
まぁ、せいぜいいい所で、会員数に価値を見出した会社が
ビジネスプラン片手にmixi丸ごと買収って所じゃないか?
いいかげんにMySQL以外の話題ヤメロや。
856 :
NAME IS NULL:2006/10/15(日) 15:15:40 ID:XMO6J9J5
すいません。ちょっと教えて下しさい。
MySQLのデータベースファイルを別DBに移したいのですが
phpMyAdminではファイル容量が制限オーバーになってしまい困っています。
telnetを使う方法は難しいので何とかphpMyAdminiを使ってやりたいのですが
ファイルを分割してやる方法があると聞いたのですが、ご存知でしょうか?
もしご存知でしたら教えて下しさい。よろしくお願いします。
>>856 その鯖ODBCは繋がらないの?
俺の場合はODBC経由でアクセスにデータ引っこ抜いて、
他のDBへ持ってく。ってのよくやる。
非効率極まりない(藁
858が効率的なやり方を披露してくれるそうです!
↓ドゾー
金持ってソープ。これが最強に効率的。
telnetが難しいならsshつかうといいよ
結論:
ダメな奴は何をやってもダメ (AA略
telnetやsshが不可能な環境ならともかく、
難しいから嫌だというなら、MySQL使うのヤめた方がいいんじゃね?
だからMySQL使うのやめるんだろ。
とまぁ揚げ足とりはおいといて、
MySQLに詳しくないやつでも、MovableTypeなんかで使うわけで、
サーバ移転なんかで、DBがPostgreSQLしかない!なんて時に、
DBの移行作業は必須になるだろ?
だから、投げやりな解答をしないでやってほしい。
お前が答えろって?普段ROMしてるだけの初心者なので知らん。
許せ。
コマンドライン使いたくない香具師を相手にそんな特殊事情を説明しろと?
俺はパス
つってもなー、簡単なODBCの方法でレスポンス無しの相手じゃ
他の方法なんかもっと敷居が高いぜ。
正直、相手できんだろ。
>>832 ライブドアのポータルの開発、運用は10人くらいの天才でやってるしね
田酔えばこういうケースの場合って、有料で代行してくれる業者とかあるの?
>>856 sshで入って DBをディレクトリ丸ごと圧縮してftpするか、mysqldump して同じくftpしろ。
わからなかったググレ。そんなに難しくない。情報は沢山あるはず。トライしろ。
うまく出来たとしたら 856のスキルは上がった事になるはず。
で、今後 phpMyAdmin類は一切使うな。
870 :
NAME IS NULL:2006/10/16(月) 16:29:54 ID:Z4XJL4IP
テーブルの行が、ある一定の量を超した場合
古い順から削除することはできますか?
例えば一つの行をINSERTしたら、ある一定の量を超えてしまったので
一番古い行は削除するとか…
そのとおりにプログラム書けばよいと思うが。
872 :
NAME IS NULL:2006/10/16(月) 19:28:33 ID:Z4XJL4IP
>>871 ですよね……。
ただ、MySQLサイドで出来るならそうしたかったのです。
プログラムサイドでやると冗長になるというか、面倒d(うわなにをいわすんだやめry
やっぱり、ダメな奴は何をやってもダメ
トリガーでも使えばできるかも知れんが手間はどっこいどっこいだろうし、そもそも面倒だっていうようなレベルのコーディングじゃない
大体トリガーとかストアドって後で作った事忘れてそうであんまり使いたくない
>>867 確かにコネクションプーリング都市伝説とか技術的には高い集団だと思いまつ。
某○立なんかOracle運用しておいて「PL/SQL詳しくないモノで…」と
言われてキれそうになりますた。
なんにせよ使う側なんだよなぁ。
オンザエッヂ時代にちょっと内部にいたけど勉強熱心な人多かった
mixiってFedoraなのか・・・。
まー、DebianはNICが認識しないとウザいのはある罠…。
漏れはDebian派なのだが。
自分は15年くらい(386BSD〜)FreeBSD波
仕事ではHPUXばっかりだけど
>>80 ずーと前のネタで申し訳ないが、80さん に教えてもらった・・・
4.1から Char型がバイト数から文字数になったので以前のテーブルは勝手にlength
が半分にされちゃう
って件、まさに遭遇中なのだがうまい回避策ってないのかしら?
mysqldump したものをインポートすれば大丈夫っぽいけどDBが巨大なんで・・・
出来ればDBファイル直で入れたい。
883 :
80:2006/10/17(火) 23:10:06 ID:???
>>882 MyISAMなら、binary charsetでテーブルを作成して、MYIとMYDをコピーすればなんとかなったりしないかなぁ。
やったことないから、うまくいくかどうかは知らない。データ壊れたらごめん。
DBが巨大って何TBぐらい?
ミクシはパールを選択してる時点で、明らかに長期安定運用は捨ててるよな。
新機能の開発速度だけに主眼を置いて、頻繁なシステム更新でフェドラの最新ハードのサポート状況と新機能の堪能のメリットの方が大きいという判断だろう。
一般企業の枯れた環境で安定した運用を目指すのとは対極。
人柱プロジェクトで上場しちゃって大儲けだよな(w
だから、ATMやCD機が普通に止まるし人を待たすのがmysqlのせいだったら叩かれまくって普及しないだろ。
モラクルはそれでも売れるんだよ。東証が処理能力限界で世界三大市場の一つが時間短縮なんて措置をとっても、モラクル案件を頼む香具師は居るんだよ。
また金融機関で仕事した事ないやつの妄想が始まったのか・・・。
(多くの)ATMがCD機が止まるのはRDBのシステムとはあまり関係ないのだが
無理にOracle>MySQLの図に持っていこうとするのは痛々しいんだが…。
盲目的にOracle勧めるやつがいるのは知ってるよ。
特に
>>885が(w
>>885 ミクシで誰からも招待されない まで読んだ
888 :
NAME IS NULL:2006/10/18(水) 08:02:59 ID:MRFIim5T
DELETE FROM `tbl_name` WHERE name = 'apple' ORDER BY `id` DESC LIMIT 3, 1
というSQLを発行すると:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1' at line 1
というエラーが返ってきます。
どこか構文違反をしているのでしょうか?
よろしくおねがいします。
>>885 (ノ∀`)アチャー
自分の中の知識いっぱいいっぱいで書いたんだろうが、
読む側の知識を想像できないんだね。イタタタタ・・・
phpMyAdminで、テーブル構造を見てみると
「オーバーヘッド」というものが記されています(赤い字で)。
調べてみると、未使用領域らしいのですがこれは放置しても全然問題ありませんか?
最適化すると大丈夫みたいなんですけど。
mysqlで大規模案件に参加できずに貧乏暮らし大変だね(w
なんかもう、Oracle厨が必死すぎて、必死すぎて…。
つまり
>>893にとってはgoogleやyahooは小規模案件なんだな。
どんな大規模案件をやっているか概要キボンヌw
なんだこの微妙な煽り合いは
東証って、ついこないだ、世界の大恥やらかしたよねw
あれオラクルだったの?
InnoDBはOracleのものだから、片タマ握られていることを忘れずに。
売りっぱなしのなんちゃってSIerイラネ
大規模案件って自慢したいんだろうが、
どーせ上司に言われたとおりの案件しかやったことねぇだろ?
>>80 3系から4系へのDBファイル直コンバートの件、色々やったけどうまくゆかず
結局 mysqldump経由で1晩走らせて逃げますた。m(__)m
転びついでに文字コードを ujisからutf8に変換しちゃいました。
オラGKとでも呼べそうな人達が増えましたねw
utf8に変換乙。
コンバートの不具合の検証して問題は無かった?
グーグルやヤホーなんて、多少鯖落ちしてても問題無いし。
オープンソースのマイエスクーエルって、そういう用途しか使えないよね。
ところでさ、まともにサポート料はらうんだったら、オープンソース物使う意味ってなんかあんの?
いつまでも直らない仕様という名の不具合からの開放
オープンソース=ボランティアが好きに作り散らかしてる、と思いこんでる奴がいるな
>グーグルやヤホーなんて、多少鯖落ちしてても問題無いし。
こういう事を本気で言うやつにはまともな案件回してもらっていないんだろうな(w
Oracle厨ってどうしてこんなに必死なんだろう・・・。
多数並列で稼働してるからってことっしょ。
おらー、すきだあぁぁ!!
MySQLネタが不足しているようなので、、、
久しぶりに、quickpollsから
What is your primary Enterprise OS for deploying MySQL:
Debian GNU/Linux382 (16.6%)
Gentoo Linux130 (5.6%)
Mandrakelinux85 (3.7%)
SUSE LINUX213 (9.2%)
Red Hat Linux315 (13.7%)
Fedora Core165 (7.2%)
FreeBSD177 (7.7%)
OpenBSD34 (1.5%)
Mac OS X117 (5.1%)
Sun Solaris66 (2.9%)
IBM AIX6 (0.3%)
HP UX4 (0.2%)
Microsoft Windows613 (26.6%)
A total of 2307 votes have been cast in this poll.
しかし、Poll opened November 29, 2004.と古いので、
最近の状況を知りたいところ。
燃料投下乙
漏れはAIXに入れている勇者がHP-UXより多い事に驚愕するが…。
AIXかぁ・・なつかしいなもう10年以上経つのか
癖ありマクリだったがそんなに悪いUnixじゃないと思うけど
DB2逃れ?
AIXは一応Unixだから別にフリーソフト入れるのも有りでしょ。
gccとかも入れたりするだろうし。
HP-UXはsjisだから、utfのmysqlは苦労するだろうな。
スレまとめサイトなところでquickpollでもやってくれれば、このスレ読んでるねらーの動作状況が分かるのにな。
linux, windowsあたりが圧倒的だとは思うが。あとは標準インスコされてるmac os x serverとかは多そうかな?
オープンソースの問題点。
誰も直さないソースコードの問題はいつまでも解消しない。
誰が責任を持ってソースコードをメンテナンスしてくれるか。
まあmysqlの場合は、mysql abがあるからいいけど、mysql abと契約せずに使ってる香具師はアフォと。
工エエェェ(´д`)ェェエエ工
HP-UX11iにはmysqlが最初から入ってるぞw
>>915 >>オープンソースの問題点。
>>誰も直さないソースコードの問題はいつまでも解消しない。
それはオープンソースに限らず、ソフトウェア全般における当たり前な話。
もちろんプロプライエタリなクローズドソースでもな。
金払ってるからって自分が言ったことを誰か責任持って直してくれると思ったら
そりゃ非常識なまでに甘すぎって話よwww
実際はオープンソースの方がバグに対する対応早いと思うんだが。
IBMなんかだとむちゃくちゃゴリ押ししてお願いしまくって技術的に協力すれば
個別PTFとかで対応してくれない事もないんだが、多分普通の会社かつSEでは無理かと。
まあ、この場合はIBMの中の人と技術交流できるんで個人的な意見として
技術屋としては有意義(?)だったりするんだが・・・。
ただ、ここでMySQLがオープンソースだから云々とか言うレベルの人では
お金払ってもベンダーは相手してくれないとオモ。
しかし、ここでよく話題に上がるOracleとかはバグ発見したらソッコーでパッチ
作ってくれるの?そうとは思えんのだが・・・。
>>919 やばいのはすぐにパッチつくってくれることもある。
続けて、次のネタ
やっぱりというか、PHPが多いけど、この先はRubyも増えそうかな。
What is your favourite Connector/API ?
C-API 209 (5.5%)
PHP (mysql/mysqli) 1989 (52.6%)
Perl (DBI) 334 (8.8%)
Connector/J (JDBC) 603 (16.0%)
Connector/ODBC 234 (6.2%)
Connector/NET 165 (4.4%)
Ruby 26 (0.7%)
MySQL++ 109 (2.9%)
other 110 (2.9%)
A total of 3779 votes have been cast in this poll so far.
Poll opened December 9, 2004.
それって多分外国のみのアンケートなんだろうなぁ。
いや、俺もたまに投票するから外国のみという事はないと思う。
3779票って…どういう投票よ?
926 :
NAME IS NULL:2006/10/23(月) 00:56:07 ID:T4eIfXH+
ローカルのXAMPP(MySQL - 5.0.21)のphpMyAdminで、構築したDBを
レンタルサーバーのMySQL 4.0.27で動かしたいのですが、
レンサバのphpMyAdminで、そのままインポートするとsyntax error エラーが出てしまいます。
ダウングレードというか、
なんとかコンバートすることはできないでしょうか・・・
レンサバを変えればOK
>>926 phpMyAdmin って使ったこと無いからわからんが、sshで mysqldumpしたらどう?
ver4.1とそれより前のバージョンとは結構ちがうよ。
特にcharがバイトから文字数になったことは大きいわけで。
あと5.0だと日付関連の扱いも変わったはず。
syntax errorが出てるなら、それを手がかり調べてみるとか。
930 :
926:2006/10/24(火) 13:29:34 ID:Aqoe/mjP
助言ありがとうございます。
実は、Drupalを動かしてたんですが、Druapl付属のmysql初期化ファイルが、
ver4.0のと4.1ので、DEFAULT CHARSET=utf8しか違わなかったので、
DEFAULT CHARSET=utf8
を削除したら、なんとかインポートできました。
>>929みたら、ちょっと怖い気もしますが、
とりあえず、動いているようです。
931 :
NAME IS NULL:2006/10/25(水) 20:05:42 ID:TmEIsgyc
MySQL5.0.26 + WindowsXP
PHPスクリプトから接続をリソースプールに保持したままにする場合、長時間無操作で発生する
エラー:MySQL server has gone away
は、どうすれば素早く解消できるのでしょうか。
ご教示お願いします。
そのエラー内容でググったら1つ目に出てくるんだが・・・
933 :
931:2006/10/25(水) 20:55:41 ID:???
スクリプト内では、一回のリクエストごとに少なくとも一回のSELECT文を発行しているのです。
しかし何度更新しても同エラーが発生するので、少々お手上げの状態なのです。
BerkleyもInnoもOracleの意のままか。
935 :
NAME IS NULL:2006/10/25(水) 23:38:51 ID:duHEQ/gu
正規表現について質問です。
漢数字がはじめにきてるレコードを検索したいと思い、
select * from 'dbName' where 'fieldName' regexp '^[一二三四五六七八九十百]';
で検索をかけると、
一 この表に・・・
二 次の項目に関して・・・
などに混じって
導火線
備考
などが該当フィールドとしてあがってきます。
文字コードはECU-JPです。
何が悪いのでしょうか?
どうすれば、望みを叶える事が出来るのでしょうか?
ご存知の方いらっしゃったらよろしくお願いいたします。
936 :
NAME IS NULL:2006/10/25(水) 23:39:32 ID:duHEQ/gu
ごめんなさい。
該当フィールドではなく、該当レコードでした。
よろしくお願いいたします。
phpMyAdmin使うぐらいだから、sshなんて無理だろ。
せいぜいwebmin止まりだと思う。
つーかssh使えるなら、mysqlコマンド使ってるよな。
Cって結構使われてるね。perl廚やアクセス廚のグループじゃん。速度求めるならCだよな。
おまいら、VC++とgccとどっち使ってるの?
オープンソースもオラクル案件も、金が絡むと損害賠償問題になるから必死に直すことに成るよ。
債務不履行、法律上の瑕疵担保責任とか、いくらでも材料はある。
個人情報なんてDBに突っ込んで扱ってたりしたら、最高裁で一人当たり5000円の判例が有るから、1万人程度でも5000万の損害賠償が発生する。
utfで格納する実装で、euc使うなんてアフォだな。
自前でutfとeucの変換ルーチンの仕様を検証して確認して使ってるのか?
>>937 おまいさんは誰に何が言いたのか、さっぱりわからん
phpMyAdminつかうよな。
べんりだもんな。
何だかんだでいまだに一番使えるのが残念でならない
せめて自由なテンプレートでカスタマイズでも出来ればよかったんだけど・・・
mysqlに関するすべての事をphpMyAdminで済まそうと思う姿勢が悪い。
無償版はたんなる人柱版になってしまったなw
も〜 おわり〜だね〜♪
>>943 「なに?オープンソース?なんかあったら誰が責任とるんだ!」
とか言う上司がいるようなところじゃない?
>>946 じゃあなた自身、なにかあったらどう責任とるの?
MSのIISが世界中を真っ赤っかにした、あの事件
MSはどう責任とったんだ
苦情から最近やった対応したけど、2年間もバグ放置(50数件のバグw)してたオッラクル
がどうしたって?w
説明してもらおうか
別に特段おどろくことでもないだろ
Redhatと同じことやるっての話だろ
Redhat Enterprise とFedora みたいな関係だろ
リナックスやマイスクールもバグぐらいは有るよ。
日本語変換のバグに比べれば(w
マイスクールで無料でぼったくり商売してるところはますます厳しくなるな(w
ABにライセンス料払わずに稼いでるミクシのような会社は潰れれば良いと思う。
だからオープンソースとフリーソフトの区別をつけろとあれほど
Enterprise で要求される要件って、ほとんどInnoDBでしか実現できんだろ。
Oracleにタマ握られている状態でええんか?
それとも新たにデータベース形式をつくるんか?
>>952 儲かってる会社が気に入らないだけだろ?
払っても他の部分で難癖つけるよね。
これから学習の為にMySQLをインストールしようと思っているのですが、
勉強目的で使う場合どのバージョンが一番使いやすいでしょうか?
MySQLのアーキテクチャを勉強したいのか
DBを勉強したいのかどっちなんだ?
そもそも使いやすいってなんだ?
959 :
957:2006/10/27(金) 14:16:21 ID:???
基本情報+ソフトウェア開発のSQL文の学習です。
バージョンによって使い勝手が違ってくると思ったのですが、
そうでもないんですかね?
961 :
957:2006/10/27(金) 19:04:56 ID:???
すみませんが質問です。
VARCHAR(3)のカラムに、10文字の文字列を挿入したところ、エラーの発生を期
待したのですが、先頭の3文字がカラムにセットされてしまいました。
データが挿入されず、エラーが発生するようにさせる方法はないでしょうか?
環境は、RedHatEnterpriseLinux4
mysql Ver 14.12 Distrib 5.0.19, for pc-linux-gnu (i686) using readline 5.0
です。
963 :
362:2006/10/27(金) 19:45:09 ID:???
964 :
362:2006/10/27(金) 19:47:37 ID:???
アフォが湧いてる。
phpあたりでチェックして弾けよ。
不正な文字列チェックもしてないだろ(w
そもそもSQLって方言有るよ。
パフォーマンス考えても、個別にSQL変えるのが普通だし。
SQL92で組んでたら遅くてダメポ。
966 :
NAME IS NULL:2006/10/28(土) 01:06:21 ID:Wc5NZXSR
いつ5.1のGA版出るんだよ
本家でMySQL 5.0.26探してたらが見当たらなくなってたんだけど消えた?
968 :
NAME IS NULL:2006/10/28(土) 04:32:22 ID:VgyjUfLX
自宅鯖用にMySQL入れようと思ったんですけど、
Community Serverってのでいいんですかね…?
他解説サイト照らし合わせて導入してたら
明らかに違う内容になってたので、どれ入れたら良いか困ってます。
どのMySQL入れればいいんでしょうか?
5.0.24aに戻っているのは、差別化のため?
971 :
NAME IS NULL:2006/10/28(土) 15:55:25 ID:v5Ro4U7r
UPDATEするときにもともと入っている値に+1したいのですがどのようにすればいいでしょうか?
おチからお貸しください
972 :
810:2006/10/28(土) 17:41:50 ID:???
入院してますた
>>813 >mysql4.0X前提です。
なので、サブクエリは使えないです(・ω・`)ショボーン
973 :
NAME IS NULL:2006/10/28(土) 18:23:15 ID:s3W1eRiX
すみませんが教えてください
auto_incrementフィールドに追加した値というのは
追加した直後に最大の値を取得するということでしか
分からないものでしょうか?
>>971 updateで+1するクエリを書く。
>>972 だったら取得してアプリで処理するのが無難。
同じテーブルをjoinする技もあるが、バージョンによってはエラーになることもあるのでオススメしない
>>973 last insert id でググる
976 :
973:2006/10/28(土) 18:46:28 ID:???
>>975 即レスありがとうございました
感謝です!
977 :
971:2006/10/28(土) 21:56:09 ID:v5Ro4U7r
>>974 もったいぶんなよはげ
それで出来ないから聞いてるのにやなやつだな
979 :
810:2006/10/29(日) 01:15:12 ID:???
>>971 UPDATE `TableName` SET `FieldName` = `FieldName` + 1 WHERE `対象` = 対象ID;
じゃね?
>>974 やっぱりだめっすか・・・
このへんがmysql4の辛いとこだな・・・
DBから配列で取っておいてphp側でゴニョゴニョ。マンドクサ
980 :
971:2006/10/29(日) 01:20:25 ID:0/dKasgK
>>979さん
有難うございます!できました^^!
UPDATE `TableName` SET `FieldName` = + 1 WHERE `対象` = 対象ID;
ってしてました^^;
php側で処理する方がdb側の機能が低くても対応しやすいけどな。
db側の機能使ってると、db変えたときに氏ねる。
982 :
810:2006/10/30(月) 01:23:47 ID:???
>>981 なるほど・・・
確かにそれは言えるけど、やっぱめんどいす。
配列でゴニョゴニョしてると、開発してる時はいいけどしばらくしてから自分のソースみても意味不明になることが多いorz
質問です。
MySQLで1つのテーブルに格納可能な最大行数はいくつでしょうか?
65536
Excelかよ
986 :
NAME IS NULL:2006/10/30(月) 07:04:13 ID:+ZkUoZVr
初心者質問で、申し訳ないのですが、phpでDBにinsertするスクリプトを書いたのですが、
このinsertするときに、現状だとロックをしていないのですが、↓のようにロックをするのが普通なんですかね?
mysql_query("LOCK TABLES table1 WRITE");
mysql_query("INSERT INTO table1(fld1) VALUES('aaa')");
mysql_query("UNLOCK TABLES");
>>986 データの整合性を保証したい処理なのであれば
きっとそう書くのだろうね
ちなみにそれはテーブル型がMyISAMの場合か
InnoDBやBDBならばbegin 〜 commit/rollback
ってところだろう
988 :
NAME IS NULL:2006/10/30(月) 07:59:46 ID:+ZkUoZVr
>>987 ありがとうございます。
すいません、文章の後半が勉強不足で理解できないのですが、MyISAMとかなら
LOCK TABLES〜ではなくて、begin 〜 commit/rollbackを使うってことですか?
begin 〜 はトランザクション処理のことですよね!?
一回のINSERTを行うだけなら、トランザクションを使う必要はないですよね!?
>>988 いや、逆だ
MyISAMだとテーブル型としてトランザクションをサポートしてないので
lock tables 〜によるテーブルロックが必要であるということだ
一方、InnoDBなどはトランザクションをサポートしているゆえ
begin 〜 commit/rollback を使えるということだ
>一回のINSERTを行うだけなら、トランザクションを使う必要はないですよね!?
それはケースバイケースだけどね
個人的には更新系のSQLを発行する場合はなるべく
データの整合性は保証されるべきだと思ってるけど
つまり、INSERT INTO table1(fld1) VALUES('aaa'); を発行する場合でも
テーブルロックやトランザクション処理によってデータの整合性を
保証してやるべきだと思う
990 :
NAME IS NULL:2006/10/30(月) 12:09:27 ID:+ZkUoZVr
>>989 なるほど!大変、勉強になりました。ありがとうございます!!
まだまだ、全然勉強不足なんで頑張りたいです。
991 :
NAME IS NULL:2006/10/30(月) 15:17:15 ID:qfzAj0Ln
wwwとDBを分割しようと思っているんですが、その際の互いの接続はハブでのLAN接続?
直結?それとも?
一般的にはどう繋いでるんでしょうか?
物理的な部分については、如何様にも。
論理的には、
AP - クライアント
AP - DB
DB バックアップ専用
とネットワークを分けるのが普通かな。
クロスケーブルで直結はなかなか強気…。
管理用のPCを繋いだりする可能性を考えて
一個リピータハブ噛ましたりするかな。