1 名前:だよもん!!! [2007/09/23(日) 10:57:29 ID:RN+MewUh] 快速 RDBMS、MySQL の総合スレです。 前スレ[MySQL 総合 Part11] pc11.2ch.net/test/read.cgi/db/1178154390/ [関連スレと過去ログ] find.2ch.net/index.php?STR=MySQL makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on [MySQL Developer Zone] dev.mysql.com/ [MySQL 日本語リファレンスマニュアル] dev.mysql.com/doc/mysql/ja/ [MySQL Internals Manual] dev.mysql.com/doc/internals/en/ [MyNA] www.mysql.gr.jp/ [MLja] lists.mysql.com/mysql-ja ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。 www.mysql.gr.jp/frame/modules/bwiki/?FAQ MyNAでの「心得の条」 www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0 ・関連ツール及びユーティリティ ・関連書籍 >>2
2 名前:NAME IS NULL mailto:sage [2007/09/23(日) 10:58:56 ID:???] 【関連ツール及びユーティリティ】 [phpMyAdmin] www.phpmyadmin.net/ [phpMyBackupPro] www.phpmybackuppro.net/ [MySQLCC] www.mysql.com/products/mysqlcc/ [MySQL-Front] www.mysqlfront.de/ [mytop] jeremy.zawodny.com/mysql/mytop/ [Common SQL Environment] www.hi-ho.ne.jp/tsumiki/cse_1.html MySQL ABでの各種GUIツールはMySQL GUI Toolsとして統合されています (WorkbenchはGUI Toolsから独立しました。) dev.mysql.com/downloads/gui-tools/5.0.html ・MySQL Administrator ・MySQL Query Browser ・MySQL Migration Toolkit dev.mysql.com/downloads/gui-tools/5.0.html#Workbench ・MySQL Workbench 【関連書籍】 [MySQL Books] dev.mysql.com/books/ www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-jp&fqp=keywords%01MySQL www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-us&fqp=keywords%01MySQL 2ch風偉人伝 AA はこちら www.aadayo.com/aa/02_13.html
3 名前:NAME IS NULL [2007/09/24(月) 21:17:06 ID:pceZ+XvF] 連続のUPDATEの際、INSERTのように1文で書くことはできますでしょうか? 以下のように書いてみましたができませんでした。 UPDATE hoge SET title='HOGE1' WHERE seq=1, hoge SET title='hoge2' WHERE seq=2;
4 名前:NAME IS NULL mailto:sage [2007/09/24(月) 22:06:40 ID:???] 更新データを蓄えるための作業用のテーブルを作ってよければ、こんな感じで。 update test1 set col2 = (select test2.col2 from test2 where test1.col1 = test2.col1) where col1 in (select col1 from test2); 普通はこんなことしないと思うけど…
5 名前:NAME IS NULL [2007/09/25(火) 03:54:31 ID:QTKb0E3V] >>4さん レスありがとうございます。 普通は一回一回UPDATEするということでしょうか? 連続で4回ほどUPDATEすることが確実なのでINSERTのように連続でINSERTすることで負荷を軽減したいと思ったのですが・・・
6 名前:NAME IS NULL mailto:sage [2007/09/25(火) 04:34:44 ID:???] UPDATEはB-TREE索引をたどって該当行をつかむ→書き換える、 って流れだから、もし1つのSQLで複数まとめて書く文法があったとしても 内部動作的はこれを1回ずつ繰り返すしかない。 だから効率的にはならないんだよ。 INSERTは表の末尾に一度に書き込めばいいから効率的にできるけどね。 というわけでUPDATE4回投げましょう。 同じUPDATE文でパラメータが違うだけなら PreparedStatement(JDBCの場合)をつかってSQLの解析コストを減らしましょう。 あとは、4回というのが確定ならそのための専用のストアドプロシージャを 書けばクライアント⇔サーバ間の通信量とかは減らせるね。 (ストアドの中では結局UPDATEを4回やるわけだけど)
7 名前:NAME IS NULL [2007/09/25(火) 13:13:39 ID:I2co02Wi] MySQL4.1でsortの基準をExcelと同じようにする方法はありますでしょうか? 以下のような場合でselect時にsortすると --------------- insert into test(str) values('5'),('a'),('ア'),('イ'),('あ'),('い'); MySQLでは あ->い->ア->イ->5->a Excelでは 5->a->ア->あ->イ->い --------------- になります。MySQLでExcelのようなsort方法は可能でしょうか?
8 名前:NAME IS NULL mailto:sage [2007/09/26(水) 00:29:32 ID:???] おまえら、まだ前スレが残っていますよ。
9 名前:NAME IS NULL mailto:sage [2007/09/26(水) 08:02:13 ID:???] ほっとけば落ちるから問題なし
10 名前:NAME IS NULL [2007/09/28(金) 04:44:53 ID:e5bj6BJY] あげ
11 名前:NAME IS NULL [2007/09/30(日) 22:18:21 ID:kM0xx8Ko] こんにちわ表をCRETE TABLeでつくってるのですがレコードの名前と型の名前のかきかたと 型の数字だけ表示するやり方がわかりません ちなみに名前はCO CO COUNTRY_NAMEで型がREGION_IDです よろしくおねがいします ちなみに表の名前はcountriesで 表をだすときは SELECT * FROM COUNTRIES: です教えてください
12 名前:NAME IS NULL [2007/10/01(月) 01:08:52 ID:k3mU4g8h] 質問させて下さい。 以下のようなテーブルがあります。(他の情報は省略してます。) tableAにidを4つまで登録することができます。1つのみ登録することもあります。 tableBにidの名称を持っています。 tableA | id1 | id2 | id3 | id4 | +-----+-----+-----+-----+ | 001 | 002 | 003 | 005 | | 002 | | | | tableB | id | id_name | +-----+---------+ | 001 | name1 | | 002 | name2 | | 003 | name3 | | 004 | name4 | | 005 | name5 | | 006 | name6 | この時、↓のような結果を求めるsqlを教えてください。 | id1 | id_name1 | id2 | id_name2 | id3 | id_name3 | id4 | id_name4 | +-----+----------+-----+----------+-----+----------+-----+----------+ | 001 | name1 | 002 | name2 | 003 | name3 | 005 | name5 | | 002 | name2 | | | | | | | よろしくお願いします。
13 名前:NAME IS NULL mailto:sage [2007/10/01(月) 01:37:19 ID:???] select A.id1, B1.id_name, A.id2, B2.id_name, A.id3, B3.id_name, A.id4, B4.id_name from tableA A, tableB B1, tableB B2, tableB B3, tableB B4 where A.id1 = B1.id and A.id2 = B2.id and A.id3 = B3.id and A.id4 = B4.id ; わりとFAQ?
14 名前:NAME IS NULL mailto:sage [2007/10/01(月) 07:09:32 ID:???] TableAの設計が間違ってると思うのは漏れだけ?
15 名前:NAME IS NULL mailto:sage [2007/10/01(月) 09:30:42 ID:???] >>14 おばあちゃんが言っていた なんでも正規化すればいいわけじゃない ってな
16 名前:NAME IS NULL mailto:sage [2007/10/01(月) 10:48:20 ID:???] 以下のようなテーブルがあります。(他の情報は省略してます。)
17 名前:NAME IS NULL mailto:sage [2007/10/01(月) 20:14:38 ID:???] 馬鹿には見えないテーブルか
18 名前:NAME IS NULL mailto:sage [2007/10/01(月) 21:59:42 ID:???] >>17 裏2chじゃないの?
19 名前:NAME IS NULL [2007/10/03(水) 14:50:47 ID:L9QuLInZ] ORDER BYで近い数値順に並べ替えとかできませんかね? 2500に近い順 var 1945 4278 5362 4896 3542 1457 1234 ↓ var 1945 1457 3542 1234 4278 4896 5362
20 名前:NAME IS NULL mailto:sage [2007/10/03(水) 16:09:54 ID:???] >18 鮫島に関する投稿は消されるんだよ素人
21 名前:NAME IS NULL mailto:sage [2007/10/03(水) 19:06:01 ID:???] select hoge from fuga order by abs(hoge - 2000)
22 名前:NAME IS NULL mailto:sage [2007/10/03(水) 19:28:21 ID:???] 掲示板に3分以内に投稿されたレスの数を取得するSQL文を書こうと思っています。 dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html を見たのですが、比較部分をどうすれば良いのかが分かりません。 SELECT COUNT(*) FROM `res_t` WHERE dateTime_c >= SUBTIME(NOW(), '00:03:00'); みたいに書いたら一応エラーにはならないのですが、正しく比較できているか (日時が数値変換されて変に比較されていないか) が不安でしょうがありません。 上のSQL文で正しいかどうか、間違っていればどこを修正すれば良いのかを、ご教示お願いします。
23 名前:NAME IS NULL [2007/10/04(木) 17:32:35 ID:Iv269TDK] 質問します 会員管理システムで、ログイン後ユーザ情報編集画面に移るようにしたいんですが、 ログイン用のIDとPassは名前や電話番号などのユーザ情報テーブルの 中に入れてもいいんでしょうか? それとも、ログイン確認用の専用のテーブルを持たせるべきでしょうか みなさんはどのようにしていますか? また、各情報の編集のために複数の編集ページを行き来するたびに、 セッションでID/Passを随時確認した方がいいんでしょうか? だいたいこんな感じでやっているというのを教えてください。 よろしくお願いします -------------- webプログラム板で質問したんですが、板違いといわれてこちらで再質問させてもらいました
24 名前:NAME IS NULL mailto:sage [2007/10/04(木) 21:22:46 ID:???] 俺にはweb板が正しくここが板違いにみえるが。。。
25 名前:NAME IS NULL mailto:sage [2007/10/04(木) 23:53:10 ID:???] >>23 MySQLなんて大げさなやつじゃなくて PHPのAPIのSQLite使ったセッション管理使えばいいんじゃね? PHPスレかSQLiteスレに行くといいと思うよ。
26 名前:NAME IS NULL mailto:sage [2007/10/04(木) 23:58:36 ID:???] PHPスレで拒否られてるんだよ、>>23 は。 PHPスレでDBの作りの質問をし、MySQLスレでWEBセッション管理の質問 も追加してくれば、どちらでも違和感感じる罠。 PHPとMySQL固有の話じゃ無いんだから、もっと一般的な話題のスレで 聞くべき。 で、要求されるセキュリティのレベルが分からない以上、お好きなように としか言いようが無い。
27 名前:NAME IS NULL mailto:sage [2007/10/05(金) 00:00:10 ID:???] >>26 一度や二度のアタックであきらめるような恋なら最初からするな。
28 名前:NAME IS NULL mailto:sage [2007/10/05(金) 00:04:46 ID:???] はあ?
29 名前:NAME IS NULL mailto:sage [2007/10/05(金) 00:39:42 ID:???] 規模にもよるけど悩むぐらいなら作れって あ、ねぇきいてきいていますっごいいっぱいうんこでてるよ すっごいいっぱい うんこが でてるんだよ 俺の体内しか知らなかったうんこたちが 噴流となって体外へと このタイムスタンプが俺とうんこたちとの生きた証、メモリー トイレからカキコ
30 名前:NAME IS NULL [2007/10/05(金) 11:27:29 ID:+u0dyj/F] すみませんが質問させてください。 MySQL5.0 LIKE演算において[0-9]や[A-C]などの構文ってサポートされていないのでしょうか? 自分で調べたらAccessではできるみたいなのですが・・・。 できないのであれば、同じことを実現する方法ってありますか? 具体的には・・・ <<data>> CF47 AD27 EZ12 から先頭のアルファベットがA-C、二番目のアルファベットがC-Gを SELECTしたいのですが、俺がアホなのか何回やっても構文エラーが 帰ってきます・・・。
31 名前:NAME IS NULL mailto:sage [2007/10/05(金) 11:35:42 ID:???] like 'AC%' or like 'AD%' or like 'AE%' or .... or like 'AG%' or like 'BC%' or ... like 'CC%' or ...
32 名前:30 [2007/10/05(金) 11:43:36 ID:+u0dyj/F] >31 ありがとうございます。 まじっすか!? 力技しかないのか〜。
33 名前:NAME IS NULL mailto:sage [2007/10/05(金) 13:35:11 ID:???] where data between 'A' and 'C' and substr(data, 2, 1) between 'C' and 'G'
34 名前:30 [2007/10/05(金) 14:10:13 ID:+u0dyj/F] おぅおぅ!感動っす♪ ありがとうございました。
35 名前:NAME IS NULL [2007/10/05(金) 21:27:23 ID:ywDCVcNs] >>30 正規表現使えよ・・・
36 名前:NAME IS NULL mailto:sage [2007/10/05(金) 22:41:19 ID:???] >>30 RLIKE でおk
37 名前:NAME IS NULL mailto:sage [2007/10/06(土) 05:59:29 ID:???] dev.mysql.com/doc/refman/5.1/ja/string-comparison-functions.html
38 名前:NAME IS NULL [2007/10/06(土) 09:02:35 ID:ALRD9ApN] "GROUP BY column"となっているときcolumnがNULLの時は纏めたくないのですが、 どのようにしたら良いでしょうか?
39 名前:38 mailto:sage [2007/10/06(土) 09:04:18 ID:???] すみません、Ver 3.23です。
40 名前:NAME IS NULL mailto:sage [2007/10/06(土) 11:57:40 ID:???] WHERE column is not null GROUP BY column
41 名前:38 mailto:sage [2007/10/06(土) 12:06:44 ID:???] >>40 ありがとうございます。 ですが、それだとcolumnがNULLのものは、纏める纏めない関係無しに 全て表示されなくなってしまうのですが。。
42 名前:NAME IS NULL mailto:age [2007/10/06(土) 12:11:34 ID:???] mysqldumpでDBのフルバックアップを二回取ったんですが、 一回目取った分と二回目に取った分の差分を埋めることってできませんかね?
43 名前:NAME IS NULL mailto:sage [2007/10/06(土) 12:14:04 ID:???] これでどう select ... from ... where column is not null group by column union all select ... from ... where column is null;
44 名前:38 mailto:sage [2007/10/06(土) 12:36:43 ID:???] >>43 ありがとうございます。 うーん、それしかないですかね。。二つクエリ発行するのは負荷の都合から避けたいのですが。
45 名前:NAME IS NULL mailto:sage [2007/10/06(土) 15:30:16 ID:???] >>24-26 ごめんよ 自分でどうにかしてみるよ
46 名前:NAME IS NULL mailto:sage [2007/10/06(土) 15:37:05 ID:???] じゃあ NULLはまとめない⇒NULLにダミー値を差し込む という方針で select col2, col3 from test; +------+------+ | col2 | col3 | +------+------+ | 1 | 1 | | 1 | 2 | | 2 | 1 | | 2 | 2 | | NULL | 1 | | NULL | 2 | +------+------+ select max(col2) into @r from test; select case when col2 is null then @r := @r + 1 else col2 end dummy1, count(*) from test group by dummy1 ; +--------+----------+ | dummy1 | count(*) | +--------+----------+ | 1 | 2 | | 2 | 2 | | 4 | 1 | | 6 | 1 | +--------+----------+ @rが2ずつ増えるのが謎…
47 名前:NAME IS NULL mailto:sage [2007/10/06(土) 20:23:41 ID:???] ワロス 3から始まらないのも謎...
48 名前:NAME IS NULL [2007/10/07(日) 09:03:47 ID:QwQK+lic] A,B,Cというカラムがありまして、 A,Bの項目が重複しているレコードを全て取得したいのですが、どのようなSQLを発行すれば宜しいでしょうか? A,B,C "男","東京","新宿" "男","東京","池袋" "男","東京","渋谷" "女","神奈川","横浜" "女","東京","新宿" ↓↓↓↓↓↓↓↓↓↓↓↓(■"男","東京"が重複しているレコードを取得したいです) "男","東京","新宿" "男","東京","池袋" "男","東京","渋谷" A項目B項目とも内容が不定なので、WHERE文が作れなくて挫折してしましました。 宜しくお願いします。
49 名前:NAME IS NULL mailto:sage [2007/10/07(日) 09:12:10 ID:???] group by dummy1 の中でも @r := @r + 1 が評価されてしまっている select max(col2) into @r from test; set @s := 0; select case when col2 is null then @r := @r + 1 else col2 end dummy1, @s := @s + 1, count(*) from test group by dummy1 ;
50 名前:NAME IS NULL mailto:sage [2007/10/07(日) 09:24:17 ID:???] >>48 SELECT a, b, c FROM test WHERE a In (SELECT a FROM test GROUP BY a, b HAVING Count(*) > 1) ORDER BY a, b;
51 名前:NAME IS NULL mailto:sage [2007/10/07(日) 13:33:39 ID:???] >>50 ありがとうございました。 出来ました!! 色々四苦八苦していたので助かりました。
52 名前:NAME IS NULL mailto:sage [2007/10/07(日) 15:00:28 ID:???] すみません、テーブルを作っていたら以下のようなエラーが出ました 本の通りしたつもりなんですが、どういう問題なのでしょう? mysql> create table 'saloon_kihon'( -> 'sId' int(10) NOT NULL auto_increment, -> 'loginId' varchar(32) -> ); ERROR 1064 (42000): 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 ''salo on_kihon'( 'sId' int(10) NOT NULL auto_increment, 'loginId' varchar(32) )' at line 1
53 名前:NAME IS NULL mailto:sage [2007/10/07(日) 15:10:48 ID:???] >>52 single quoteではなくてback slashだろw
54 名前:NAME IS NULL mailto:sage [2007/10/07(日) 15:19:31 ID:???] >>53 本当にすみません どこの部分でしょう? ドシロウトなので、自分なりに慎重にやってるつもりなんですが、、 もう少し詳しくお願いします。
55 名前:NAME IS NULL mailto:sage [2007/10/07(日) 15:53:06 ID:???] 「'」と「`」は違う文字
56 名前:NAME IS NULL mailto:sage [2007/10/07(日) 15:57:59 ID:???] DBにデータをinsertしまくってるんだけど、 /var/run/mysqld/mysqld-bin.000001 /var/run/mysqld/mysqld-bin.000002 …以降,1GB超えると次の番号へ というバイナリが異常なペースで肥大化しているんだが、このファイルは何? ログだとは思うんだけど、サイズ指定とか場所変更する方法はないかな /varのパーティションサイズがさしてでかくないから困ってる /etc/mysql/my.cnfにそれらしき設定項目も無い だれかヘルプ
57 名前:NAME IS NULL mailto:sage [2007/10/07(日) 16:13:07 ID:???] log-binっていうそれらしき設定項目があるはずなんだが
58 名前:NAME IS NULL mailto:sage [2007/10/07(日) 16:27:57 ID:???] >>57 確かにあった、これだったのか。 log-bin とだけしかなかったら何かわからずスルーしていたんだけど、 log-bin=/hoge/log とかすれば場所変更できるみたいだね! dクス
59 名前:NAME IS NULL mailto:sage [2007/10/07(日) 17:34:27 ID:???] >>53 back quote な。
60 名前:NAME IS NULL mailto:sage [2007/10/07(日) 17:35:32 ID:???] dev.mysql.com/doc/refman/5.1/en/log-file-maintenance.html
61 名前:NAME IS NULL mailto:sage [2007/10/07(日) 17:41:42 ID:???] >>60 ありがとう。 あとは有効期限(expire_logs_days じゃ無理かな?)を指定できればいいんだけど、 検索すべきキーワードもわかったから、あとはなんとか自分で調べるよ。
62 名前:NAME IS NULL mailto:sage [2007/10/07(日) 21:56:39 ID:???] hogeフィールドのデータが 「yama,kawa,tani」のデータに対して、 yama か kawa か tani であれば一致するようにしたい場合、 WHERE hoge REGEXP (yama|kawa|tani) でいけるかと思いますが、 他にもっとスマートな関数や演算子とかないでしょうか。 説明へたくそでスマソ。伝わるかな(汗
63 名前:NAME IS NULL mailto:sage [2007/10/07(日) 23:41:29 ID:???] hoge in ('yama','kawa','tani') これ?
64 名前:NAME IS NULL mailto:sage [2007/10/08(月) 12:11:37 ID:???] MySQL Command Line Client で何か select 文を発行すると mysql> select count(*) from hogehoge; +----------+ | count(*) | +----------+ | 999999 | +----------+ のように - や | や + で整形して表示されますが、これらを自由に設定するには どうしたらいいですか? ORACLE でいう SET COLSEP=hemohemo という感じです。
65 名前:NAME IS NULL mailto:sage [2007/10/08(月) 12:22:48 ID:???] >>64 できない
66 名前:64 mailto:sage [2007/10/08(月) 12:30:42 ID:???] >>65 ガ━━(゚Д゚;)━━━ン!!!!! ありがとうございましたorz
67 名前:NAME IS NULL mailto:sage [2007/10/08(月) 13:47:43 ID:???] 現在InnoDBのサイズが60G超えてるんだけど mysqldを起動するだけで激しいI/Oが発生する 止めれば発生しない ディスク使用量に変化は無く、ただCPU3〜4%を食いながらメモリ量が上下しているだけ 8時間たった今もかわらずHDDが絶えずカリカリ mysqldは何してるの?
68 名前:67 mailto:sage [2007/10/08(月) 16:43:34 ID:???] ↑の質問はスルーでお願い。 そもそもプログラムミスでコミットの粒度が大きすぎたのが原因かも。 直してもなるようだったら、また質問させてもらうよ
69 名前:NAME IS NULL mailto:sage [2007/10/08(月) 18:18:51 ID:???] InnoDBは大量にINSERTしたデータをいったんInsert Bufferというところに ためて、あとから非同期にテーブルに差し込む。 この処理のことをInsert BufferをMergeするって言う。 だからトランザクションをいっぱい流すと、 その後mysqld再起動してなんも触ってないのにカリカリいうことはある。 show engine innodb statusでINSERT BUFFER AND ADAPTIVE HASH INDEX のセクションを眺めてなんだか忙しそうなら当たり。 innodb_fast_shutdown = 0にするとmysqldは停止時にInsert Buffer Mergeを 完了させる。でもマニュアルには「これらの操作には数分間、または極端な 場合には数時間かかる事があります。」と書いてある。
70 名前:NAME IS NULL mailto:sage [2007/10/08(月) 19:19:13 ID:???] パスワード無しでテーブルの有無を確認するだけのユーザーを作りたいのですが、 どのような権限を与えればいいのでしょうか?
71 名前:NAME IS NULL mailto:sage [2007/10/09(火) 00:26:59 ID:???] >>55 ありがとうございました フィールド名って「'」でくくらなくてもOKなんですね なんで自分の本はくくってるんだろう、、 ともかくありがとう
72 名前:NAME IS NULL mailto:sage [2007/10/09(火) 01:26:00 ID:???] >>71 いやフィールド名で使うのは「'」ではなく「`」。
73 名前:NAME IS NULL mailto:sage [2007/10/09(火) 06:24:57 ID:???] >>72 おお、出来ました というか、パソコン買って8年目にして初めて「`」の存在に気づきましたw ありがとうございました!
74 名前:NAME IS NULL mailto:sage [2007/10/09(火) 09:09:42 ID:???] 数字を含むカラムがあって その中からある範囲の数字を含むレコードが 存在するかしないかだけを調べるにはどうすればよいですか
75 名前:NAME IS NULL mailto:sage [2007/10/09(火) 09:19:05 ID:???] >>74 簡単にサンプルを示してくれ
76 名前:NAME IS NULL [2007/10/09(火) 09:19:10 ID:NjjCqEdh] SELCT COUNT(*) TOTAL FROM SAMPLE WHERE COLUMN > 0 AND COLUMN < 100;
77 名前:NAME IS NULL [2007/10/09(火) 17:35:33 ID:/I5hC7wb] 合計で数百万行で1.5GB相当のデータを47分割してテーブルに格納しています。 検索するときに、全てを結合させて検索していますが、 結合させずにひとつのテーブルに全てのデータを格納しているときと、 処理速度は変わらないのでしょうか? ためしてみようと思ったのですが、1.5GBほどのデータ量のため、とても時間がかかってしまいます。
78 名前:NAME IS NULL mailto:sage [2007/10/09(火) 18:12:16 ID:???] >>77 全てを結合ってどういうこと?
79 名前:NAME IS NULL mailto:sage [2007/10/09(火) 18:22:46 ID:???] >全てを結合ってどういうこと? つまりSEXってこと。
80 名前:NAME IS NULL [2007/10/09(火) 19:47:45 ID:v9b6pzkg] なんでスケールを小さくして試してみようとは思わないのかしら?
81 名前:NAME IS NULL mailto:sage [2007/10/09(火) 20:05:59 ID:???] 1テーブルに数百万行の状態で検索した場合の速度が知りたいからじゃね?
82 名前:59 mailto:sage [2007/10/09(火) 21:55:34 ID:???] >>73 なんで俺のヒントはスルーなんだよ!!
83 名前:NAME IS NULL mailto:sage [2007/10/09(火) 21:56:09 ID:???] >>74 RANGE か BETWEEN てなかったっけ?
84 名前:NAME IS NULL mailto:sage [2007/10/10(水) 00:47:20 ID:???] CREATE TABLE `users` ( `username` char(30) NOT NULL default '', `userpasswd` char(20) NOT NULL default '', ); INSERT INTO `users` (`username`, `userpasswd`) VALUES ('wildcard', '%'); 上記のようなテーブル・データを作成して 下記のようにSELECTしてみましたが、username wildcard は セレクトされませんでした。 どこがだめでしょうか? SELECT * FROM `users` WHERE `userpasswd` = 'abc';
85 名前:NAME IS NULL mailto:sage [2007/10/10(水) 02:45:47 ID:???] フィールドの値をベースに正規表現で比較するのって可能でしょうか? SELECT field FROM `table` WHERE 'keyword' REGEXP field; で一応うまく検索かけれるんだけど、これって正式にサポートされてるんでしょうか? また、 WHERE 'keyword' REGEXP ^field$; みたいに記述したい場合はどうすればいいんでしょうか。 ちなみにこれでは文法エラーがでます。
86 名前:NAME IS NULL mailto:sage [2007/10/10(水) 03:27:08 ID:???] >>84 そりゃ username = 'wildcard' のレコードの userpasswd カラムの値は 'abc' じゃないからだろ
87 名前:NAME IS NULL mailto:sage [2007/10/10(水) 08:40:52 ID:???] >>85 1番目 REGEXPの演算子の問題だから、フィールド値を左右どっちに使っても問題ない。 2番目 WHERE 'keyword' REGEXP CONCAT("^",field,"$") でいけるかな。 1 にしても 2 にしても遅そうだけど。
88 名前:NAME IS NULL mailto:sage [2007/10/10(水) 12:10:03 ID:???] データベースに保存されているデータを 丸々そのまま別のところで使用したい場合、 どうすればいいのかな? 容量は3GB近くなんだが・・・
89 名前:NAME IS NULL mailto:sage [2007/10/10(水) 13:28:55 ID:???] DB止めれるならtar玉で圧縮したら?
90 名前:NAME IS NULL mailto:sage [2007/10/10(水) 13:35:08 ID:???] >>89 鯖にもよるんですね さくらのプロ借りてますが、/db/ってとこに入れればいいのかな・・・?
91 名前:84 mailto:sage [2007/10/10(水) 13:36:35 ID:???] どんな条件でもヒットするような フィールド値って存在しないんでしょうか? %にすれば何でもヒットしてくれるかな、というあふぉな考えをしてました。
92 名前:84 mailto:sage [2007/10/10(水) 13:39:47 ID:???] そういえば、 mysqlデータベースのuserテーブルって、Hostフィールドが%で機能してますよね。 あれは、MySQLのユーザ処理部分がそういう風に作られてるだけで 一般的な使用方法は無理なのでしょうか。
93 名前:84 mailto:sage [2007/10/10(水) 13:40:50 ID:???] >>90 さくらならphpmyadminでエクスポートすればよいのでは。
94 名前:NAME IS NULL mailto:sage [2007/10/10(水) 13:41:37 ID:???] >>93 インポートかな・・・? 流石に3GBもあるのを一度にインポートするのは大変な気も・・・ たとえ分割してても
95 名前:NAME IS NULL mailto:sage [2007/10/10(水) 13:58:24 ID:???] >>91 存在しない 意味がないから >>92 このカラムを読み込んだプログラムが % の場合は任意のホストとして扱う、という処理なんだろう きっと、、、
96 名前:NAME IS NULL mailto:sage [2007/10/10(水) 15:04:23 ID:???] >>90 さん、レンタルサーバーを借りているなら、仕様書なりありませんか? また、サポートなどで聞くことはできませんか? Linux(など)の場合、サービスディレクトリはサーバーの設計を行った人にしかわからない かと思います。 また、DBが共有サービスであれば、DBを止めることもできないかと思われます。 サーバーへログイン可能であれば、 www.nilab.info/zurazure2/000659.html こういったものを参考にできませんでしょうか?
97 名前:NAME IS NULL mailto:sage [2007/10/10(水) 15:16:04 ID:???] >>91 確かにそういう特殊な値はほしいときがあるね
98 名前:NAME IS NULL mailto:sage [2007/10/10(水) 15:43:32 ID:???] >>84 SELECT * FROM `users` WHERE 'abc' like `userpasswd`; で絞り込んだ後、フロントエンドで処理するんじゃだめ?
99 名前:NAME IS NULL [2007/10/10(水) 15:44:38 ID:g44V9bOq] >>98 もしくは素直にNULLを入れといて SELECT * FROM `users` WHERE `userpasswd` = 'abc' or `userpasswd` is null; する方が素直かな。
100 名前:NAME IS NULL mailto:sage [2007/10/10(水) 16:39:07 ID:???] >>96 は?何か? >>90 show variables like "datadir"; でDBのデータディレクトリを特定 FLUSH TABLES WITH READ LOCK; でDBのカキコ禁止 データディレクトリを丸ごと tar zcvf 終わったらカキコ許可 UNLOCK TABLES; でsftpとか lftp で tarしたDBファイルを引越し先にput 後はわかるだろう。
101 名前:NAME IS NULL mailto:sage [2007/10/10(水) 19:47:56 ID:???] もしかしてさんざん既出かと思うのですが、ざっとググった限りでは解決しなかったので 質問させてください。 今サーバで動いているMySQLはrpmでいれた5.0.22なのですが、コンパイルオプションとして dont_use_default_fieldsを指定した動作になっているようです。開発環境のWindows版とで insert時の挙動が異なり、大変不便な思いをしています。 これを解決するにはソースからコンパイルするほかないんでしょうか? なお現在手に入る最新のrpmは以前のstandardではなくcommunity版となっており、 コンフリクトのためインストールできませんでした。
102 名前:NAME IS NULL mailto:sage [2007/10/10(水) 21:25:21 ID:???] そのとおり
103 名前:NAME IS NULL mailto:sage [2007/10/10(水) 21:44:38 ID:???] >>96 web.arena.ne.jp/suitepro/support/manual/webserver/apache.html
104 名前:NAME IS NULL mailto:sage [2007/10/10(水) 21:45:24 ID:???] ごめん こっちだった web.arena.ne.jp/suite2/
105 名前:NAME IS NULL mailto:sage [2007/10/10(水) 21:51:45 ID:???] web.arena.ne.jp/suitepro/service/spec_12.html
106 名前:NAME IS NULL mailto:sage [2007/10/10(水) 22:05:08 ID:???] mysql> show global status; で出てくる送信バイト数Bytes_sentの値が、32bit(4GB)で桁あふれして ゼロに戻っちゃうんですが、仕様ですか? いまどき、4Gとかで桁あふれされても困るんですが。 何回桁あふれたかperlスクリプトか何かでチェックしてバイト数だすのとか面倒くさす どうにかなりません?
107 名前:NAME IS NULL mailto:sage [2007/10/10(水) 22:15:27 ID:???] >>106 いまどき32bit環境かよ!
108 名前:NAME IS NULL mailto:sage [2007/10/10(水) 22:15:57 ID:???] すまんかった、今すぐOpteron買ってくる!
109 名前:NAME IS NULL mailto:sage [2007/10/10(水) 22:36:50 ID:???] >>106 ttp://bugs.mysql.com/bug.php?id=28149 5.0.44 及び 5.1.20-beta で修正した、とのこと
110 名前:NAME IS NULL mailto:sage [2007/10/10(水) 23:07:16 ID:???] アルェー(・3・)うち5.0.45なんだけドー と思ったら The Bytes_received and Bytes_sent status variables could hold only 32-bit values (not 64-bit values) on some platforms. some platformsっすか・・・
111 名前:NAME IS NULL [2007/10/11(木) 00:46:49 ID:+sOrpx9+] すまんが、データベース内で、文字列の中から2つ以上並んだスペースを1つのスペースに置き換えることって出来ないかなあ? 「あ_い___うえ____お」→「あ_い_うえ_お」 こんな感じで。 一回、スペースで切り分けて、スペースを除去してからスペースを一つつけてつなぎ合わせるしかないのかな???
112 名前:NAME IS NULL mailto:sage [2007/10/11(木) 00:58:35 ID:???] スペース3個をスペース2個に置換をできるかぎりやる 1個→1個 2個→2個 3個→2個 4個→3個→2個 5個→4個→3個→2個 となって、必ずスペース1個か2個になる。 スペース3個がなくなったら、スペース2個を1個に置換すればおk
113 名前:NAME IS NULL [2007/10/11(木) 01:10:57 ID:dt5N6A3I] >>112 やっぱりデータベース内では限界なのかなあ???
114 名前:NAME IS NULL mailto:sage [2007/10/11(木) 01:15:34 ID:???] いや、データベース内で置換できるだろ、replaceで
115 名前:NAME IS NULL [2007/10/11(木) 01:47:43 ID:D7bY0G8T] datetimeのカラムにインデックス付けて、 年とか、年月とか、年月日で集計したいのですが like 'year-month%'で検索するとインデックスが使用されません インデックスが使われるようにするにはどうすればいいですか?
116 名前:むこうの246 mailto:sage [2007/10/11(木) 04:08:30 ID:???] どなたか、こちらの件わかる人おりませんか?? pc11.2ch.net/test/read.cgi/db/1081818145/246-247 ちなみに今日は、本家から5.0.45.tar.gzとってきて、同様にmake(prefixのみ別dirで./configure)してみたんですが、 やっぱりmake testで一発目(alias)からFailedでて先に進めません。 昨日と同じく、testとばしてmake installして起動させてみると一応ちゃんと動いている模様。 ./mysql-test/mysql-test-runはやっぱり通らないけど、./sql-bench/run-all-testだと(5.0.48、5.0.45とも)止まらずに最後まで行きます。 出力見た限りではどこかでエラーとかにはなってないと思う(前にWin版でsql-benchした時、エラーの時それらしい出力があった) もともとrpmで入った/etc/my.cnfをrenameしたり、/usr/local/mysql仕様に書き換えたりしたけどtest通らず。 distri達はrpm作った時にどうやってtest通したんだ? (specのなかにmake testがあるってことは、ちゃんと通ったはずなんですが・・)
117 名前:NAME IS NULL mailto:sage [2007/10/11(木) 10:55:56 ID:???] >>115 範囲指定する。
118 名前:NAME IS NULL mailto:sage [2007/10/11(木) 11:53:28 ID:???] 文字列の中から2つ以上並んだスペースを1つのスペースに置き換えることって 1個→1個 2個→1個 3個→2個→1個 4個→3個→2個→1個 5個→4個→3個→2個→1個
119 名前:むこうの246 mailto:sage [2007/10/12(金) 04:33:11 ID:???] 問題解決しました。どうもすいません。
120 名前:NAME IS NULL mailto:sage [2007/10/12(金) 07:15:11 ID:???] s/\s+/ /g
121 名前:NAME IS NULL mailto:sage [2007/10/13(土) 15:35:09 ID:???] >>120 マルチバイトで正規表現ってちゃんと使えるようになったの? まだ鬼車パッチ当てなきゃだめ?
122 名前:NAME IS NULL mailto:sage [2007/10/14(日) 00:44:56 ID:???] なってないような気がする。
123 名前:NAME IS NULL [2007/10/16(火) 17:22:51 ID:19Z+CTul] 曖昧検索のやり方を教えてください。 検索用語「手伝う」 「おなかが減りました」 「手が痛いです」 「今日、母親の手伝いをしました」 「仕事を手伝う」 とあると、一番「手伝う」に近いものから出したいのです。 上記の場合だと 「仕事を手伝う」 「今日、母親の手伝いをしました」 「手が痛いです」 「おなかが減りました」 このように出したいのですが、そういった検索方法はありますでしょうか?
124 名前:NAME IS NULL mailto:sage [2007/10/16(火) 21:41:18 ID:???] DBに曖昧検索機能など無い
125 名前:NAME IS NULL mailto:sage [2007/10/16(火) 21:44:19 ID:???] つオントロジ
126 名前:NAME IS NULL [2007/10/16(火) 23:35:24 ID:wl91U+ML] 類義語辞書DB作ってFullTextSearch回すとか
127 名前:NAME IS NULL [2007/10/16(火) 23:41:50 ID:JuRjnLqb] マッチ条件がだんだん短くなるような検索があればいいんだな、多分
128 名前:NAME IS NULL [2007/10/17(水) 01:17:33 ID:hXE7fedj] 「手伝う」でマッチする文章を高いスコアとし、 「手伝」「伝う」でマッチするのはそれより低いスコア、 「手」「伝」「う」でマッチするのはもっと低いスコアとして さらに出現頻度で合計して総合スコアをだせばいいのでは どれくらいのスコアにすればいいのかは統計をとって最適値を求めればいいのでは
129 名前:NAME IS NULL mailto:sage [2007/10/17(水) 01:21:04 ID:???] 「てつだう」はスコア低くていいのかな
130 名前:NAME IS NULL mailto:sage [2007/10/17(水) 03:11:56 ID:???] >>133 ないので自分で作ってください
131 名前:NAME IS NULL mailto:sage [2007/10/17(水) 16:27:20 ID:???] かなりアクセスのあるデータベース(MySQL)を使用する際、 [構成A] CPU:Core2Duo メモリ:8GB HDD:SATA 台数:4台 で行くのが良いのかそれとも [構成B] CPU:Core2Quad メモリ:8GB HDD:SAS 15000回転 台数:2台 で行くのが良いのかどちらでしょう。 読み込み中心ならメモリでキャッシュ処理できるから 構成Aのほうが圧倒的に優位な気はしますが。 参考コメントきぼんぬ
132 名前:NAME IS NULL mailto:sage [2007/10/17(水) 17:35:21 ID:???] データの総量が8GB未満ならB。 ディスクにアクセスしないのでCPU性能が出るから。 データの総容量が8GB以上ならB。 ディスクが速いから。 構成書き間違ってない?
133 名前:NAME IS NULL mailto:sage [2007/10/17(水) 17:46:22 ID:???] MySQLクラスタって参照のみでもそんなに速度がでないって言うし、それもプロ中のプロが限界まで調整した結果なんだろうし・・・・ 相当単純なことしかさせない場合は別として、Bの方が安全かなあ?
134 名前:NAME IS NULL mailto:sage [2007/10/17(水) 18:49:45 ID:???] 会費制の会員システムをphp+mysqlで組もうと思うのですが、 料金部分のテーブル構成に非常に悩んでます。 どこか参考になるところないでしょうか。 ここの決定でほぼ決まるような気がします。
135 名前:NAME IS NULL mailto:sage [2007/10/17(水) 19:03:22 ID:???] >>134 恐らくデータ型を悩んでいるんだと思いますが、 DECIMAL型で作成すれば、あとは特に問題は生じないと思います。 理由はお分かりだと思いますが、まるめ誤差を防ぐためです。
136 名前:132 mailto:sage [2007/10/17(水) 19:36:19 ID:???] >>133 台数ってHDDの数じゃなくてサーバの台数? 勘違いしてた。前言撤回。 Aでレプリケーション組むのがいいと思う。 更新用が1台、参照用が3台。 MySQLは2コア→4コアの性能向上があまり良くないから。 ストレージエンジンはMyISAMかInnoDBで。 MySQL Clusterは忘れていいよ。あれは特定用途向けの単機能製品。 エンジンの機能実装がしょぼいのでちょっと凝ったSQL投げると性能劣化する。
137 名前:133 mailto:sage [2007/10/17(水) 20:41:11 ID:???] >>136 すまんが俺は131じゃないんだ。 参照のみっていっても、必ずしもレプリケーションで対応できるわけでもないんじゃないかなっていう意味で>>133 を捕らえて欲しい。
138 名前:NAME IS NULL [2007/10/18(木) 18:12:39 ID:k4W9Nk/e] タギングを実装しようと考えているのですがDB構成がどうもしっくりきません。 皆さんならどんな風に実装しますか? 僕が考えたものだと汎用性が皆無です。。。 ■案1 CREATE TABLE t_bookmark ( seq INT, name VARCHAR(128), tag1 VARCHAR(32), tag2 VARCHAR(32), tag3 VARCHAR(32) … ■案2 CREATE TABLE t_bookmark ( seq INT, name VARCHAR(128), … CREATE TABLE t_bookmark_tagging ( bookmark_seq INT, -- t_bookmark.seq tag VARCHAR(32) … 案1だと3つまでと最大数が決まっているが管理が簡単 案2だと汎用性は1以上だが膨大なデータ量になるかも できればタグ同士をフォルダーのように関連付けたりもしたいのですが皆さんならどんなテーブルにしますか?
139 名前:NAME IS NULL mailto:sage [2007/10/18(木) 18:15:31 ID:???] 少なくとも案2はねえな。
140 名前:NAME IS NULL mailto:sage [2007/10/18(木) 20:24:54 ID:???] 案2にタグテーブルを追加して、 t_bookmark_taggingテーブルのtagをタグテーブルのプライマリキーに置き換える。
141 名前:NAME IS NULL mailto:sage [2007/10/18(木) 23:11:15 ID:???] >できればタグ同士をフォルダーのように関連付けたりもしたい って具体的にどういうことがしたいん?
142 名前:NAME IS NULL [2007/10/19(金) 03:37:41 ID:H+ebEc3A] >>140 ありがとうございます! 汎用性高そうですね 勉強になります! >>141 簡単にいうとgoogleみたいなことです
143 名前:NAME IS NULL mailto:sage [2007/10/19(金) 10:45:44 ID:???] >>142 「googleみたいなこと」って全然意味が分からないのですが。 全文検索?
144 名前:NAME IS NULL mailto:sage [2007/10/19(金) 12:11:34 ID:???] gmailのラベルのことを言ってるのかな
145 名前:NAME IS NULL mailto:sage [2007/10/19(金) 12:47:16 ID:???] YouTube のタグみたいなのじゃなくて?
146 名前:NAME IS NULL [2007/10/19(金) 13:08:52 ID:vJ6ps9vK] >>143 キーワード「サル」の類義語として「ゴリラ」、「チンパンジー」などを階層的に保持したいのです。 サルで検索したらゴリラにカテゴライズされるものも表示したいのです。 自分なりに考えてみたのですが、ムズかしい!
147 名前:NAME IS NULL mailto:sage [2007/10/19(金) 13:46:45 ID:???] そういうのはスマートにやろうとするより、ベタにやったほうがかえってうまくいったりする
148 名前:NAME IS NULL mailto:sage [2007/10/19(金) 14:21:48 ID:???] >>146 そういうのは >>140 のタグテーブルにツリー構造を作るのがよかんべ。 ただ、ちゃんと考えないとパフォーマンス悪くなりそうだけど。
149 名前:NAME IS NULL mailto:sage [2007/10/19(金) 18:07:04 ID:???] >>142 まずしっかり正規化してみる。おのずと答えが出るものだ。
150 名前:NAME IS NULL mailto:sage [2007/10/19(金) 18:09:44 ID:???] google の 関連検索 見たいな事をTAGでやりたいのではないかと。 というか質問しておいて言葉足りな杉。
151 名前:NAME IS NULL mailto:sage [2007/10/19(金) 18:16:44 ID:???] >>150 そういうことか。てっきりYouTubeのタグみたいなのかと思ったぜ。
152 名前:NAME IS NULL [2007/10/19(金) 18:32:36 ID:a+9wl6Y6] DBで一部の文字列が検索できなくなりました。 文字コードはUTF-8です。 「和風居酒屋」という文字列に対し、LIKE '%居酒屋%'でヒットしません。 LIKE '%酒屋%' または LIKE '%屋%' などではヒットします。 LIKE '%居%' ではヒットしません。 「居酒屋」に対しては、 LIKE '%居酒屋%' でも LIKE '%居%' でもヒットします。 「和風 居酒屋」と、半角スペースを空けてみても LIKE '%居酒屋%' でも LIKE '%居%' でもヒットします。 「風居」で何か特殊なことでも起きているのでしょうか?
153 名前:NAME IS NULL [2007/10/19(金) 18:43:18 ID:a+9wl6Y6] 追記です。 型はTEXTです。
154 名前:NAME IS NULL mailto:sage [2007/10/19(金) 18:53:40 ID:???] 揚げ足とりみたいなことを聞いてすまんが、前まではできてたって意味なの?
155 名前:NAME IS NULL [2007/10/19(金) 18:54:39 ID:a+9wl6Y6] >>154 いえ、今回初めてやりました。 検索できなくなりました。 →検索できません。 に訂正します、すみません。
156 名前:NAME IS NULL [2007/10/19(金) 19:06:45 ID:a+9wl6Y6] SHOW VARIABLES で文字コードをチェックしたところ、「ujis」になっていました。 手順的にこんな感じです。 SET NAMES utf8 SELECT * FROM tbl WHERE keyword LIKE '%居%' 「居」の文字コードはUTF-8です。
157 名前:NAME IS NULL mailto:sage [2007/10/19(金) 20:34:35 ID:???] 「風居」とう文字列に対しての検索はしたの?
158 名前:NAME IS NULL [2007/10/19(金) 21:14:17 ID:fKi8KFKE] >>157 ID変わります。 「風居」に関してヒットしました。
159 名前:NAME IS NULL mailto:sage [2007/10/19(金) 21:41:14 ID:???] >>152 バージョンは?
160 名前:NAME IS NULL [2007/10/19(金) 21:46:53 ID:fKi8KFKE] 肝心なバージョン忘れていました さくらレンタルサーバーの4.0.2xです。
161 名前:NAME IS NULL mailto:sage [2007/10/19(金) 22:57:15 ID:???] あと大事なこと書いていませんでした。 現在、彼女募集中です。
162 名前:NAME IS NULL mailto:sage [2007/10/19(金) 23:16:15 ID:???] >>161 彼女の仕様は? レンタルでもいいの?
163 名前:NAME IS NULL mailto:sage [2007/10/19(金) 23:20:42 ID:???] >>162 INSERTどころかSELECTも無理だよ。
164 名前:NAME IS NULL mailto:sage [2007/10/19(金) 23:38:11 ID:???] >>162 できれば居酒屋で働いてる様な娘がいいです
165 名前:NAME IS NULL [2007/10/19(金) 23:38:33 ID:fKi8KFKE] >>161 今日好きな子に彼氏ができたとこだ だからその辺りは突っ込まないでくれ・・・
166 名前:NAME IS NULL [2007/10/19(金) 23:43:57 ID:fKi8KFKE] って大阪支部は大阪かwww把握wwww 3人いるみたいだから俺も参加していい? 何か参加資格とかあるのかな?
167 名前:NAME IS NULL [2007/10/19(金) 23:45:46 ID:fKi8KFKE] 誤爆orz
168 名前:NAME IS NULL mailto:sage [2007/10/19(金) 23:55:10 ID:???] VIPなんぞ覗いてるから 彼女ができないんだよ
169 名前:NAME IS NULL [2007/10/19(金) 23:55:54 ID:fKi8KFKE] >>168 元カノなんだけどね・・・ ずるずる引きずってるのよ・・・ だからこんなレベルなんだ・・・
170 名前:NAME IS NULL mailto:sage [2007/10/19(金) 23:58:03 ID:???] もう drop して 新しいテーブルを create しろよ
171 名前:NAME IS NULL [2007/10/20(土) 00:01:32 ID:fUFTSHBK] 新しいテーブルが作成できないみたい 心のパーミッションエラーだって・・・
172 名前:NAME IS NULL mailto:sage [2007/10/20(土) 03:13:49 ID:???] そもそも4.0はutf8サポートしてないんだけどそのへんどうなの
173 名前:NAME IS NULL mailto:sage [2007/10/20(土) 04:55:33 ID:???] 案の定WebProg板から移動してましたね>>152
174 名前:NAME IS NULL [2007/10/20(土) 05:13:56 ID:2AwTGoKZ] すいません初心者でよく分からないのですが ログインページであるIDでログイン後、そのIDの列にセッションIDを登録したいと考えています。 テーブルにはIDがすでに登録されていてSessionidにはNULLが入っている状態です。 教授宜しくお願い致します。
175 名前:NAME IS NULL mailto:sage [2007/10/20(土) 06:15:04 ID:???] すいません意味がわかりません・・・
176 名前:NAME IS NULL mailto:sage [2007/10/20(土) 06:27:02 ID:???] 教授は土日休みです
177 名前:NAME IS NULL mailto:sage [2007/10/20(土) 06:57:25 ID:???] update USERTABLE set Sessionid='hogehoge' where id='hemohemo';
178 名前:NAME IS NULL [2007/10/20(土) 07:16:24 ID:fUFTSHBK] >>172 それは初耳です・・・ >>173 そのとおりです。
179 名前:NAME IS NULL mailto:sage [2007/10/20(土) 09:07:33 ID:???] >>178 これか。 9.5. Unicode のサポート MySQL バージョン 4.1 以降、Unicode データを保存するために次の新しいキャラクタセットが用意されています: ucs2 (UCS-2 Unicode キャラクタセット)および utf8 (Unicode キャラクタセットの UTF-8 エンコード)。
180 名前:NAME IS NULL [2007/10/20(土) 09:44:58 ID:mSjzHsRr] すみません質問します。 今、テーブル作ってるんですが、フィールドの数が90個くらいになりそうです。 これは異常でしょうか。初心者なので、判断に迷っています。
181 名前:NAME IS NULL mailto:sage [2007/10/20(土) 10:31:40 ID:???] >>180 どんなテーブルかわからんと判断も出来ん。 それと、こちらで聞いた方がいいでしょう。 頼むから正規化しろよ 第二正規形 pc11.2ch.net/test/read.cgi/db/1116097001/
182 名前:NAME IS NULL mailto:sage [2007/10/20(土) 10:33:50 ID:???] >>180 設計間違ってるで九分九厘間違いないです。 (それ判断できない人が、ガチで90必要な大規模案件やってるわけないのでね)
183 名前:NAME IS NULL mailto:sage [2007/10/20(土) 12:23:24 ID:???] >>180 正規化やってその数なら問題ない 1000のカラム抱えたテーブル扱ってるけど普通に動くし
184 名前:NAME IS NULL mailto:sage [2007/10/20(土) 13:00:19 ID:???] 180です 回答ありがとうございます。 テーブルは、ライブの情報を扱うものです。なので、 開催日、開始時間、料金、イベント情報etcの基本情報と 出演者名、出演者のURL、演奏楽器 の出演者情報etcの2種類に分かれます 出演者はイベントごとに1〜10人に分かれて不安定なので正規化・分離するなら この部分かなぁと思うんですが、、 この程度なら同じテーブルに入れてもいいのかなぁという気もして、判断しかねてます
185 名前:NAME IS NULL mailto:sage [2007/10/20(土) 16:43:44 ID:???] 時刻の取得について質問です。 time_stというところにtimestampが入っていまして select time_st from member where memname='test';と実行すると time-st 2007-10-20 16:10:30 と取得できるのですがこれを20071020161030と繋げて取得するにはどのようにすればよいでしょうか?
186 名前:NAME IS NULL mailto:sage [2007/10/20(土) 16:49:54 ID:???] >>185 dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html
187 名前:NAME IS NULL mailto:sage [2007/10/20(土) 17:35:14 ID:???] >>186 ありがとうございました。無事できました〜。
188 名前:NAME IS NULL [2007/10/21(日) 00:34:22 ID:VLr/CFtZ] あるテーブルに削除フラグ(1か0がはいります)をalterで追加しようと思っているのですが、 charにしようかintにしようか迷ってます。 通常は、このような削除フラグのようなものは何の型にするのが普通でしょうか?
189 名前:NAME IS NULL mailto:sage [2007/10/21(日) 00:48:34 ID:???] 一応BOOLEANがあるらしいよ dev.mysql.com/doc/refman/5.1/ja/numeric-type-overview.html
190 名前:NAME IS NULL mailto:sage [2007/10/21(日) 15:15:54 ID:???] まぁtinyintなんだけどな
191 名前:NAME IS NULL mailto:sage [2007/10/21(日) 18:34:46 ID:???] MySQL 4.1.20 Windows desc テーブル名でテーブルの構成情報が見られますけど、これをテキスト情報に落とすことって 出来ませんかね?
192 名前:NAME IS NULL mailto:sage [2007/10/21(日) 19:21:55 ID:???] >> table.txt
193 名前:NAME IS NULL mailto:sage [2007/10/21(日) 19:30:39 ID:???] mysql < desc.sql > xxxx.txt で出来るんじゃないの でもmysqldump使うのが一般的だと思う
194 名前:NAME IS NULL mailto:sage [2007/10/21(日) 19:38:07 ID:???] リダイレクトで見ることが出来ました。お二方、thxです。 Mysqldumpは書いた後、思いつきました(^^;。
195 名前:NAME IS NULL [2007/10/21(日) 22:06:09 ID:ORdmYlqR] 初心者質問ですいません。 検索等実行時の戻り値に所要時間がありますが、 この値をPerlスクリプトから取得したいです。 でもMySQLのどの値にアクセスしていいのかわからず・・・ よかったらおしえてくださいm(_ _)m
196 名前:>>189 mailto:sage [2007/10/21(日) 23:46:13 ID:???] >>189 ありがとうございますm(_ _)m
197 名前:NAME IS NULL mailto:sage [2007/10/22(月) 00:17:58 ID:???] MySQLのソース client/mysql.cc を読むと分かるけど 処理時間を計っているのはmysqldでもlibmysqlclientでもなく mysqlコマンド本体。 だからPerlスクリプトから処理時間を知りたければ Time::HiResあたりを使って自分で計るのがいいと思う。 use DBI; use Time::HiRes; $user = 'xxxx'; $pass = 'xxxx'; $db = DBI->connect('DBI:mysql:xxxx:xxxx', $user, $pass); $sth = $db->prepare("select c1 from t1"); $t = Time::HiRes::time; $sth->execute; for ($i = 0; $i < $sth->rows; $i++) { @r = $sth->fetchrow_array; print "$r[0]\n"; } $t = Time::HiRes::time - $t; printf "%.4f sec\n", $t; $sth->finish; $db->disconnect;
198 名前:NAME IS NULL mailto:sage [2007/10/22(月) 16:12:58 ID:???] mysql5のレプリケーションは、 マスターのDBに対して、スレーブは、すべて既存のDBが消去されて、 マスターのDBが複製されるのでしょうか? マスターのDBが、スレーブに追加されるような形で複製されて欲しいのですが・・・。
199 名前:NAME IS NULL mailto:sage [2007/10/22(月) 17:58:08 ID:???] MySQLのレプリケーションはSQLが流れるだけだから マスタにないDB・テーブルがスレーブにあるのは大丈夫。 ただしスレーブにSQLを流す時点で不整合があるとそこでレプリケーションが停止する。
200 名前:195 mailto:sage [2007/10/22(月) 21:00:30 ID:???] >>197 ありがとうございます。mysql.ccはまだ読めていないのですが Time::HiResで計測することができました。 サンプルコードまでいただきたすかりました!
201 名前:198 mailto:sage [2007/10/22(月) 23:00:11 ID:???] >>199 ありがとうございます。 現在レプリケーションの設定ですが、いろいろつまずいています。 MyISAMの小さなデータベースで練習をしているのですが、 この場合も「バイナリログ」を使った更新になるのでしょうか? MyISAM用の単純な方式(クエリのテキスト文をスレーブに投げる等)なものがあるのでしょうか? あと、レプリケーションのタイミングは、 update、delete等、データベースが変わる瞬間にレプリケーションをするのでしょうか? タイマーのようなもので、一定間隔で変わるのでしょうか?
202 名前:NAME IS NULL mailto:sage [2007/10/23(火) 00:16:34 ID:???] >>201 >MyISAM用の単純な方式(クエリのテキスト文をスレーブに投げる等)なものがあるのでしょうか? No >update、delete等、データベースが変わる瞬間にレプリケーションをするのでしょうか? YES トランザクション開始とcomittもレプリケーションされる。 バイナリログを見ればわかる。 自分で実験されたし。
203 名前:NAME IS NULL [2007/10/23(火) 09:37:12 ID:jG23x/MR] left joinとright joinの違いって結構大きいのでしょうか? 元データが1万件ぐらいあるとき、left joinだと処理が遅くなり、 right joinだと遅さを感じませんでした。
204 名前:NAME IS NULL mailto:sage [2007/10/23(火) 10:50:38 ID:???] >>203 indexはどーなってるん?
205 名前:NAME IS NULL mailto:sage [2007/10/23(火) 10:55:03 ID:???] >>203 index含め同じ条件で結合しての結果でしょうか?
206 名前:203 mailto:sage [2007/10/24(水) 01:59:09 ID:???] >>204-205 そうです。indexを含めてleft joinをするとかなり重たいです。
207 名前:NAME IS NULL mailto:sage [2007/10/24(水) 10:58:41 ID:???] いいからexplainしろよ
208 名前:NAME IS NULL mailto:sage [2007/10/25(木) 09:29:08 ID:???] 半角カタカナ、全角半角英字、などみなさんはどのように対処されていますか? 入力時に全部統一させる、清音化した列を新たに設ける、その都度関数を用いて変換比較する 結構悩ましい問題だと思うのですが・・・
209 名前:NAME IS NULL mailto:sage [2007/10/25(木) 10:32:04 ID:???] うちでは 入力されたデータの中の 半角カタカナは勝手に全角カタカナに変換 全角英数字は勝手に半角英数字に変換 するプログラムを経由してから SQL薄幸してます
210 名前:NAME IS NULL mailto:sage [2007/10/25(木) 11:16:38 ID:???] >>209 に幸多かれ
211 名前:NAME IS NULL [2007/10/25(木) 18:56:56 ID:/t1iB/b6] MySQL 4.1.20 を、Linux でつかっています。 コマンドラインの mysql コマンドで SQL をたたくとき、 set autocommit=0; を毎回実行すれば Auto Commit はオフにできますが、毎回打つのが面倒です。 my.cnf に書いたりできないのでしょうか?
212 名前:NAME IS NULL mailto:sage [2007/10/25(木) 19:23:28 ID:???] できる
213 名前:NAME IS NULL mailto:sage [2007/10/25(木) 19:46:11 ID:???] www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_32 をみて、 /etc/my.conf の [mysqld] のブロックに init-connect='SET AUTOCOMMIT=0' を追加しました。 grant 文でスーパーユーザじゃないユーザをつくって mysql コマンドで接続したところ、 Auto Commit が 0 になっていました。 でもこれだとスーパーユーザが接続した場合は、Auto Commit = 1 のままですが、 これはしょうがないのでしょうか?
214 名前:NAME IS NULL mailto:sage [2007/10/25(木) 23:32:34 ID:???] しょうがない。
215 名前:NAME IS NULL mailto:sage [2007/10/26(金) 00:05:42 ID:???] 排他制御について質問させてください。 以下のようなtable Aがあったとします。 ---------------------------------- id | data ---------------------------------- 1 | aaa 2 | bbb 3 | ccc この状態で、データをinsertする場合、 以下のようにidのmax値を取得して、 select max(id) from A; max値に+1をして、insertという流れになるとします。 複数のプログラムがこのテーブルにデータをinsertする可能性がある場合、 テーブル毎ロックする必要があるでしょうか? #auto incrementはコーディング規約で使わない方針となっています(T_T
216 名前:NAME IS NULL mailto:sage [2007/10/26(金) 00:42:50 ID:???] AUTO INCREMENT も使えないこんな世の中じゃ
217 名前:NAME IS NULL mailto:sage [2007/10/26(金) 00:50:40 ID:???] >>215 id の値がユニークであればいいなら create table A ( id integer auto_increment primary key, data char(3)); とでもして insert into A (data) values ('aaa'); と id を指定せずに挿入するのはどうか
218 名前:NAME IS NULL mailto:sage [2007/10/26(金) 01:03:37 ID:???] >>215 さんとは別人ですが、便乗して教えてください。 auto_incrementにしてあるテーブルがあるのですが、 コレ他のサーバーに移行するとauto_incrementの値はどこからスタートするのでしょうか? auto_incrementの列に欠番があるので、1,3,4,5,7...のようになっています。 別のサーバーに移行したときに、auto_incrementがある列の最大値+1から自動的にカウントしてくれると助かるのですが。
219 名前:NAME IS NULL mailto:sage [2007/10/26(金) 01:05:55 ID:???] そのままinsertすれば問題ない
220 名前:211 mailto:sage [2007/10/26(金) 14:37:10 ID:???] やはり仕方がないのですね。 >>213 では、サーバ側の設定ですが、どちらかというとクライアント側で、 oracle の sqlplus の login.sql みたいに、毎回起動時に set autocommit=0 とかできないかなと思っていたのですが、 そういう方法はないということであきらめます。 (あとは、毎回起動時に良く使うコマンドを、source コマンドで実行するぐらいか)
221 名前:NAME IS NULL mailto:sage [2007/10/26(金) 19:38:34 ID:???] >>218 過去にそのテーブルが経験した最大値プラス1から始まる。 値は以下のコマンドで確認できる。 show table status like "hogeTable"
222 名前:NAME IS NULL [2007/10/27(土) 14:57:36 ID:g8S8hRuK] 聞きたいんですけど、みんなDBの管理ってmysqladminでやってるんですか? というか、これってwin環境ですか使えないんですよね? Linux環境で同じようなこと出来るソフトってないんでしょうか?
223 名前:NAME IS NULL mailto:sage [2007/10/27(土) 15:34:28 ID:???] Linuxでも動くでしょMySQLAdmin
224 名前:NAME IS NULL mailto:sage [2007/10/27(土) 16:36:17 ID:???] そうなんですか? よく調べてみます ありがとう
225 名前:NAME IS NULL mailto:sage [2007/10/27(土) 17:14:47 ID:???] >>224 Windows版にくっついてるGUIのやつかなあ? >>223 と想像してるものとはちがうのかもしらん。 どっちにしても大していいツールでもないので、ほかのを使うか自分でSQLを打つかすることになるだろう。
226 名前:NAME IS NULL mailto:sage [2007/10/27(土) 19:36:17 ID:???] 質問させて下さい。 WindowsXP SP2 にてMySQL 5.0.43をメモリ2G搭載して使っています。 1:my.cnf の設定を変更し再起動をかけたのですが一部設定通りに反映されていない部分がある。 2:設定値についての疑問 1については 下記以下一部抜粋 のように設定してあります。 skip-locking key_buffer=1024M table_cache=1024 max_allowed_packet=4M sort_buffer_size=2M read_buffer_size=4M SHOW VARIABLES; を打つと、table_cache 763 と表示され、設定した1024ではありません。 また、SET GLOBAL table_cache=数値; を実行するときちんと設定値になります。 設定ファイル通り読み込ませたいのです。 2については設定値の〜Mや〜Kはわかるのですが、単位のついていないもの、例えばtable_cache等はバイトと考えればよいのでしょうか? だとすればグローバルキャッシュなのにもかかわらずあまりに使用メモリ量が少ないんじゃないかと思っています。 最後に、現在メモリを多く使用するよう設定してMySQLの挙動テストをしているのですが、どれだけメモリを大きく設定しても key_buffer以外の設定だとメモリ利用料が5Mもあがりません。 SHOW VARIABLES;では殆どの値がきちんと設定値になっていますが、本当にメモリを使用しているのか少々不安です。 また、設定値自体の項目についてはいろいろなサイトで見かけますが、設定についてもう一歩踏み込んだ、 挙動を想像・把握できるような解説がなされているサイト等はありませんでしょうか? MySQLドキュメント当を見ながらやってきたのですが行き詰ってしまいました。 よろしくお願いします。
227 名前:NAME IS NULL mailto:sage [2007/10/27(土) 20:09:59 ID:???] 1. table_cache=700 と書くとどうなる? OSレベルの制限値を見てmysqldが勝手に値を絞っているのかもしれない。 2. table_cacheはハンドラというテーブルを管理する内部構造の「数」を示す。 サーバへの同時接続数が100あって、それらが平均的に テーブル3つにアクセスするSQLを実行するなら、table_cacheは300以上にする。 sort_buffer、read_bufferは それが必要となるようなSQLを実行しないと確保されない。 > 設定についてもう一歩踏み込んだ、 > 挙動を想像・把握できるような解説がなされているサイト 英語を苦にしないならこのへん。 forge.mysql.com/wiki/MySQL_Internals 書籍ならこのへん。バージョン3.xや4.xの本を買わないように注意! ・現場で使える MySQL ・MySQL 辞典 残念ながら、最終的にはソース嫁としか言えない。
228 名前:226 mailto:sage [2007/10/27(土) 20:57:38 ID:???] >>227 レス有難うございます。 table_cache=700 => 起動 => 設定値700 table_cache=512 => 起動 => 設定値512 table_cache=1024 => 起動 => 設定値763 という結果になりました。 おっしゃるとおりなのかもしれません。Linuxを覚えたほうがいいのかもですね・・・ その他の解説についても大変勉強になります。有難うございます。 少々英語アレルギーですが goo辞書に頼ってがんばって見ます! 本も明日早速見てきます。
229 名前:NAME IS NULL mailto:sage [2007/10/28(日) 14:09:32 ID:???] UTF8のテーブルを使って文書を(主に)LIKE検索するプログラムを作っています。 ひらがなとカタカナを吸収してもらえるので重宝している反面、 一方のみの結果だけでじゅうぶん、ということも多いです。 例えば人名で「アリス」と入力したとき、「〜ありすぎて」までヒットしてしまうから・・ これをSQL文など外部から制御する方法はあるでしょうか? MySQLは4.1です。
230 名前:NAME IS NULL mailto:sage [2007/10/28(日) 16:43:09 ID:???] MySQL5で id = PK name = UNIQUE というカラムのある果物テーブルがあるとして REPLACE INTO 果物 SET name = りんご を一回やると id 1 name りんご というレコードができるのですが、 REPLACE INTO 果物 SET name = りんご もう一度やると id 2 name りんご とういうレコードができます。 これを、 id 1 name りんご にするにはどうしたらいいですか?
231 名前:NAME IS NULL mailto:sage [2007/10/28(日) 16:50:37 ID:???] REPLACE は INSERT とほぼ同じように動作しますが、唯一異なる点として UNIQUE インデックスまたは PRIMARY KEY に関して新しいレコードと同じ値が テーブル内の以前のレコードに含まれていると、以前のレコードが削除されてから 新しいレコードが挿入されます。
232 名前:NAME IS NULL mailto:sage [2007/10/28(日) 23:44:39 ID:???] そもそも何を期待してるのかが不明
233 名前:NAME IS NULL mailto:sage [2007/10/29(月) 03:36:28 ID:???] 教えてください。 テーブルにPK1、PK2、PK3という3つのPKと4つ目のフィールドFLD4があり、 PK1、PK3、FLD4の3つで構成されたインデックスIDX1があります。 select PK1, Max(FLD4) From hoge Where PK3='hogehoge' Group By PK1 というSQLをexplainで調査すると Using where; Using index; Using temporary; Using filesort が現れます。 このテーブルには2000万件のレコードがあるのですが、 Using temporary; Using filesortが現れるのはレコード数のせいでしょうか?
234 名前:NAME IS NULL mailto:sage [2007/10/29(月) 15:14:34 ID:???] >>233 PK3 と PK1 で複合インデックス作ってみたら。
235 名前:NAME IS NULL mailto:sage [2007/10/29(月) 15:16:08 ID:???] >>229 分かち書きした検索用カラムを作って likeすれば。 または、セナれば。
236 名前:>>215 mailto:sage [2007/10/30(火) 02:21:14 ID:???] ありがとうございます。
237 名前:NAME IS NULL [2007/10/30(火) 07:52:01 ID:sLI+LWeo] データ型について質問です。 数字を入れる箇所をintやfloatなどのデータ型にしているのですが、 これだとデフォルト値が必ず0になります。 0にしたくないのですが、数字用のデータ型を使っている場合は 仕方ないのでしょうか?varcharなどの文字用にするべきでしょうか?
238 名前:NAME IS NULL mailto:sage [2007/10/30(火) 08:00:56 ID:???] デフォルトはNULLになるけど? mysql> create table test (c1 int primary key, c2 int); Query OK, 0 rows affected (0.04 sec) mysql> insert into test(c1) values (1); Query OK, 1 row affected (0.01 sec) mysql> select * from test; +----+------+ | c1 | c2 | +----+------+ | 1 | NULL | +----+------+ 1 row in set (0.00 sec)
239 名前:NAME IS NULL mailto:sage [2007/10/30(火) 09:31:17 ID:???] >>238 本当ですね・・・。 いつもphpMyAdminで作成していたので、出来ないと思ってました。 アドバイスありがとうございました。
240 名前:237 mailto:sage [2007/10/30(火) 09:45:19 ID:???] すみません、もう一つ自己レスです。 phpMyAdminはPHPなわけですが、その他のPHPのプログラムでも mysql> insert into test(c1,c2) values (1,''); では駄目なんですね。空であっても''があると、 そのフィールドには0が入ってしまうみたいです。
241 名前:NAME IS NULL mailto:sage [2007/10/30(火) 09:59:21 ID:???] 0解釈はDB次第だが、少なくとも '' はnullじゃないからね。
242 名前:NAME IS NULL [2007/10/30(火) 18:56:41 ID:Pyowqw9l] 【簡単のため】【簡単のため】【簡単のため】 academy6.2ch.net/test/read.cgi/gengo/1193737465/
243 名前:229 mailto:sage [2007/10/30(火) 20:08:04 ID:???] >>235 遅レスすみません。 分かち書きは考えてみたのですが、そうすると複合語にマッチしづらくなりませんか? ユーザー入力も同じ仕組みで分かち書きすればいいのかもしれないんですが 文書中、わりと崩した日本語も多いことから難しそうです。 Sennaや標準のFULLTEXTは使える環境になくて・・・ SET文などでスイッチできそうな気もするんですがどうも情報見つかりません。
244 名前:NAME IS NULL mailto:sage [2007/10/30(火) 22:18:54 ID:???] >>243 切り替えはCOLLATEで可能なんだけど、あなたの望むようなモノが用意されてるかは調べてません。 まあこのへんを読んでちょ。 dev.mysql.com/doc/refman/5.1/ja/charset-mysql.html dev.mysql.com/doc/refman/5.1/ja/charset-collate.html
245 名前:NAME IS NULL mailto:sage [2007/10/31(水) 11:02:22 ID:???] >>229 フルテキストは分かち書きして保存する。 入力文字ももちろん分かち書きする。 で、入力文字を分かち書きした区切り分クエリする。 そのとき前後の区切りも検索の対象にするのがポイント。 だけど決してパフォーマンスは出ないのでデータ数によっては注意しる。
246 名前:NAME IS NULL mailto:sage [2007/10/31(水) 11:44:58 ID:???] >>229 245 だけれども、質問をよく読むと テーブルの Collation を utf8_general_ci にすれば良いだけの話か。 utf8_unicode_ci になってない?
247 名前:229 mailto:sage [2007/10/31(水) 13:15:29 ID:???] >>245-246 ありがとうございます。 テーブルのcollationはutf8_unicode_ciにしています。 COLLATEはまったく知らなかったので、昨夜>>245 を見て確認してみました。 テーブル作成時にutf8_unicode_ciを指定したことをあまり意識していなくて >>229 に書かなかったのがよくなかったですm(_ _)m utf8_unicode_ciのテーブルに対するSELECT文にCOLLATEを入れることで、 ひらがな、カタカナが分けて検索されるのを確認できました。 SELECT * FROM table_name WHERE column_name COLLATE utf8_general_ci LIKE '%foo%' ORDER BY ・・・(続く) 検索フォームでオプションとして切り替えたりすれば便利だなと 喜んでいたんですが、その後の挙動がちょっとおかしいみたいで・・・ 次の検索でCOLLATE〜を指定しない検索をした場合でも utf8_unicode_ciの検索に戻らないみたいだったんです。 テーブルのステータスを確認しても、ちゃんとutf8_unicode_ciなんですが・・ 多分、上記の挙動はなにか別の理由というか勘違いっぽい気もしてるので 今夜さらに確認してからお返事をと思っていたんですが >>246 でちょうど指摘をいただいたので取り急ぎ書き込みました。 たいへん参考になりますm(_ _)m
248 名前:229 mailto:sage [2007/10/31(水) 20:55:14 ID:???] 先ほど確認できました。 >>247 のSQL文で問題なくスイッチできました。 動作がうまくいかなかった部分については、やはり別の理由からで 検索を試した何パターンかの自作スクリプトのうちのひとつに原因があったものでした。 そのときは突っ込まずにすぐ寝てしまったので・・すみません。 いただいた回答、たいへん参考になりました。ありがとうございましたm(_ _)m
249 名前:NAME IS NULL mailto:sage [2007/11/01(木) 00:20:39 ID:???] limit句についてご質問があります。 あるテーブルにn件のデータがあるとして、 limit 3,n のようなことをしたいのですが、どのようにすればよろしいでしょうか? limitでなくても構わないのですが、、よろしくお願い致します。
250 名前:NAME IS NULL mailto:sage [2007/11/01(木) 01:40:04 ID:???] >>249 先頭3行を読み飛ばして続くn行を表示って意味かな。 だとしたら正しくはlimit n,3(LIMIT n OFFSET 3)で 3行とばして最後までだとlimit -1,3かと。
251 名前:>>249 mailto:sage [2007/11/01(木) 01:50:57 ID:???] >>250 感動しました!
252 名前:NAME IS NULL mailto:sage [2007/11/01(木) 02:12:23 ID:???] >>250 mysqlのlimitって-1指定できないんじゃないかな? postegar sqlだと、limit all offset 3 とか指定できると思ったけど。。
253 名前:250 mailto:sage [2007/11/01(木) 04:45:12 ID:???] ご、ごめん、今になって確認したら俺全然でたらめ書いてるorz limit 3,nが正しくて、-1指定もエラーになってしまった。 手元のマニュアル確認したらやはり-1指定と書かれているんだが バージョンの違いかな。 allもだめでした。ううーん申し訳ない。
254 名前:NAME IS NULL mailto:sage [2007/11/01(木) 16:48:38 ID:???] 手元のマニュアルって何よ? ここでは「とにかくでかい数を入れろ」って書いてあるけど。 dev.mysql.com/doc/refman/5.1/ja/select.html
255 名前:>>252 mailto:sage [2007/11/02(金) 01:43:53 ID:???] >とにかくでかい数を入れろ リアルで笑ったw MySQLはこういうところが、おもちゃなんだよなぁ。。。
256 名前:NAME IS NULL mailto:sage [2007/11/02(金) 04:03:21 ID:???] それが上限値だな でかけりゃいいというもんじゃない
257 名前:NAME IS NULL mailto:sage [2007/11/02(金) 09:44:50 ID:???] 上限値を指すような「SAIDAI」とか適当なエイリアスを 定義しとけば笑われずに済んだのにな
258 名前:NAME IS NULL mailto:sage [2007/11/02(金) 12:23:32 ID:???] SELECT文で取れるデータ自体がmax_join_sizeで 制限されているので、 このパラメータの値を入れるのが お作法としてはいいと思う。 ちなみにデフォルト値は2^64
259 名前:NAME IS NULL mailto:sage [2007/11/02(金) 19:09:19 ID:???] マイナーバージョンが違うMySQLを同時に動かすにはどうすればいいんでしょうか。 my.cnfのsocketを変えても認識されないです。。。
260 名前:NAME IS NULL mailto:sage [2007/11/02(金) 19:39:30 ID:???] >>259 違うmy.cnf使えば?
261 名前:NAME IS NULL [2007/11/03(土) 01:12:05 ID:IOTlj/gO] 質問です。 アクセスログのようなものを作る際にdatetime型のカラムと、日毎に group化するためのdate型のカラムを用意しようかと思いました。 しかしマニュアルを見るに、ver4.1以上の場合はdatetime型のカラムに対して date関数を使用すると日付部分のみを取り出せ、高速でgroup化もできるとのこと。 インデックスを張ったdate型カラムに対しての検索と、date関数を通した datetime型に対する検索は等速なのでしょうか?それとも後者が早いのでしょうか? そのあたりの仕様が記述されているページを教えて頂けると勉強になります。 よろしくお願いします。
262 名前:NAME IS NULL mailto:sage [2007/11/03(土) 05:46:47 ID:???] >>261 最近の若いのは実験もせずに、すぐに答えを求めようとするんだよなぁ。 ゆとり教育のせいかもしれんで、国の責任もあるんやろな。 自分が直面している課題について、どのような実験をすれば答えを導き出せるのか 計画を立てて結果を資料にまとめる。ってことをしないと社会でいらない子になるよ? >>261 は少なくとも実験してから、ココにくるべし。
263 名前:NAME IS NULL mailto:sage [2007/11/03(土) 06:13:01 ID:???] 「ゆとり教育」っていうネーミングも失敗だったよなぁ。 いかにもアホっぽいもん。 「ものづくり大学」ってのはよさそうだけど、「ゆとり大学」ってあったら なんかヤバそうだもんなぁw
264 名前:NAME IS NULL mailto:sage [2007/11/03(土) 06:26:04 ID:???] >>259 ソケットとポート番号かえればいけると思うよ。
265 名前:>>264 mailto:sage [2007/11/03(土) 06:28:28 ID:???] 捕捉。 mysqlデーモンその1:ソケットは、/tmp/mysql1.sock ポート番号は3306 mysqlデーモンその2:ソケットは、/tmp/mysql.sock ポート番号は3307 おかわり?
266 名前:>>265 mailto:sage [2007/11/03(土) 06:30:26 ID:???] おかわりしてどうするorz ×おかわり? ◯おわかり?
267 名前:>>265 mailto:sage [2007/11/03(土) 06:32:12 ID:???] ごめん。 デーモンその2のソケットは、mysql2.sockの間違い。 なんか、もう限界みたいなので寝るw これもゆとり教育のせい。国が悪い。
268 名前:NAME IS NULL mailto:sage [2007/11/03(土) 08:39:36 ID:???] ゆとり改行
269 名前:NAME IS NULL mailto:sage [2007/11/03(土) 17:57:22 ID:???] >>267 UNIXドメインソケットの指定とポートの指定は別物だよ そもそもUDSにポート番号なんてないだろ だからこの場合、my.cnfを複数用意してクライアント側で おっとこんな時間に来客のようだ・・・
270 名前:NAME IS NULL mailto:sage [2007/11/03(土) 20:33:48 ID:???] xreaのレン鯖を借りているのですが、このエラーが出て困っています。 これって、私のプログラムが悪いのでしょうか。 xreaの管理者に連絡しても対応してもらえないので、 私が悪いのかと思っているのですが、対処法がわかりません。 宜しくお願いします。 mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Can't connect to local MySQL server through socket '/tmp/mysql.sock'
271 名前:NAME IS NULL mailto:sage [2007/11/03(土) 22:02:33 ID:???] >>270 ユーザ名に@localつけてもだめか?
272 名前:>>265 mailto:sage [2007/11/03(土) 23:07:58 ID:???] >>269 同じサーバに複数のmysqld立ち上げるんなら、ポート番号は別にする。 これ常識。
273 名前:NAME IS NULL mailto:sage [2007/11/03(土) 23:09:19 ID:???] >>270 mysqlデーモン立ち上がってないだけじゃね?
274 名前:NAME IS NULL [2007/11/04(日) 01:09:36 ID:AhMqLM4v] まさかとは思うんだが、 LEFT JOINの対応ってバージョン4.1から・・・? 4.0.27では使えなかったり?
275 名前:NAME IS NULL mailto:sage [2007/11/04(日) 06:32:23 ID:???] さすがにそれはない。 他と勘違いしてない?
276 名前:NAME IS NULL [2007/11/04(日) 08:07:06 ID:AhMqLM4v] じゃあ使い方が間違ってるのかな・・・
277 名前:NAME IS NULL mailto:sage [2007/11/04(日) 08:21:47 ID:???] LEFT JOINが使えないなんて、AND演算子が使えない に匹敵する不便さだぞ。 ありえない。
278 名前:NAME IS NULL mailto:sage [2007/11/04(日) 08:29:01 ID:???] かなり昔はできんかったよ
279 名前:NAME IS NULL [2007/11/04(日) 14:01:34 ID:frlhQ05O] 【速報】人気アニメ『涼宮ハルヒの憂鬱』テレビドラマ化! ハルヒ役は志田未来★part4 sports11.2ch.net/test/read.cgi/parksports/1193830877/l50
280 名前:NAME IS NULL mailto:sage [2007/11/04(日) 17:46:24 ID:???] MySQL4.0.27で、 「fruits」フィールドに 「りんご,バナナ,キュウリ」 みたいな複数の値を持ったレコードを入れてます。 fruitsフィールドを「りんご」や「バナナ」というキーワードで SELECTした場合、そのレコードがヒットするように したいのですが、 この場合、fruitsフィールドの型ってvarcharでいいんでしょうか? enumとかでいけるかと思ってたんですが、 実際にちょっと調べてみたら、 enumとかsetは複数の値のいずれかに限定するものであって、 複数の値を格納する型ではないですよね? また上記をスマートに実現できる構文などがあったら教えてくださいませ、 汚くなっても良いならREGEXPとか使えばできるのは想像がつきますが。
281 名前:NAME IS NULL mailto:sage [2007/11/04(日) 18:56:52 ID:???] select * from テーブル名 where fruits like '%バナナ%' or select * from テーブル名 where fruits like '%りんご%' か select * from テーブル名 where fruits in ('%バナナ%','%りんご%') でどうだろうか? おれ、msde使ってるんで、MYSQLのワイルドカード知らんので % じゃなくて * かも知れないです 違ってたらごめんなさい。
282 名前:NAME IS NULL mailto:sage [2007/11/04(日) 18:58:13 ID:???] ごめん。型の話でしたか… スマソ
283 名前:NAME IS NULL [2007/11/04(日) 19:13:08 ID:Vy5gGImB] MySQL Control Centerっての使ってる人いますか? かねやんMysqlAdminなどとくらべて使い勝手はどうでしょう? また、phpMyadminを利用されている方、利用上の注意点などはどんなことがありますか? phpMyadminってのは商用利用にも安心なツールなんでしょうか? 色んな意見を聞きたいです、よろしくお願いします
284 名前:NAME IS NULL mailto:sage [2007/11/04(日) 19:45:45 ID:???] >>280 値の個数が固定なら、それぞれの値の有り無しをビットで表すとか 値1 = 0x1000 値2 = 0x0100 値3 = 0x0010 値4 = 0x0001
285 名前:NAME IS NULL mailto:sage [2007/11/04(日) 21:42:34 ID:???] >>280 enumは複数の値のうちの1個だけど、setは複数の値のうちの複数個
286 名前:NAME IS NULL mailto:sage [2007/11/04(日) 22:12:37 ID:???] >>280 setの仕組みは>>284 と同じだったかと。
287 名前:NAME IS NULL mailto:sage [2007/11/05(月) 02:41:12 ID:???] IN()ってやると、INで指定したもののどれかが含まれてれば良しになりますけど 指定したやつ全部が含まれてれば良しとするようなものってありませんか?
288 名前:NAME IS NULL mailto:sage [2007/11/05(月) 03:44:45 ID:???] それって、条件式は真になるの?
289 名前:NAME IS NULL mailto:sage [2007/11/05(月) 04:05:16 ID:???] >>287 数値に限れば、そんな条件あり得ない
290 名前:NAME IS NULL mailto:sage [2007/11/05(月) 11:09:19 ID:???] >>280 >>286 か、テーブル分離する。
291 名前:NAME IS NULL [2007/11/05(月) 12:11:38 ID:HiIC9Mcf] 質問です 自動インクリメントする ID の初期値を10000にして、以降は 10001,10002,1003… としたいんですがどうしたらいいでしょう よろしくお願いします
292 名前:NAME IS NULL mailto:sage [2007/11/05(月) 15:03:01 ID:???] お前ら、副問い合わせをサポートしたのは 4.1以降だぞ。
293 名前:NAME IS NULL mailto:sage [2007/11/05(月) 16:08:41 ID:???] >>291 dev.mysql.com/doc/refman/5.1/ja/alter-table.html ALTER TABLE `table_name` auto_increment=10001
294 名前:NAME IS NULL mailto:age [2007/11/05(月) 19:21:15 ID:???] MySQLはPDFとかでインストールできるマニュアルってありますか?
295 名前:NAME IS NULL mailto:sage [2007/11/05(月) 19:39:58 ID:???] これじゃダメなん? dev.mysql.com/doc/
296 名前:NAME IS NULL [2007/11/06(火) 01:45:32 ID:1jsfWYs7] テーブルの複製ってどうしたらいいんですか? clone_tableってのが検索したら出てきたんですが、例文が見つからないです そもそも違うんでしょうか?
297 名前:NAME IS NULL mailto:sage [2007/11/06(火) 01:47:27 ID:???] >>296 ダウンプしてテキストエディタで編集して流し込む
298 名前:NAME IS NULL mailto:sage [2007/11/06(火) 02:08:43 ID:???] 同じ構成のテーブルを create して insert into 複製TBL select * from 元TBL; とか
299 名前:NAME IS NULL mailto:sage [2007/11/06(火) 02:16:01 ID:???] >>298 それは、データの複製だろうが。市ね!
300 名前:NAME IS NULL mailto:sage [2007/11/06(火) 02:23:00 ID:???] 質問してるくせに態度でけえな
301 名前:NAME IS NULL [2007/11/06(火) 02:34:28 ID:1jsfWYs7] いや、自分>>296 だけど>>299 はちがいますよ >>297-298 どうもありがとう かなりややこしいみたいですね、そんなことないのかな どうしたもんか、、もう少し調べてみます
302 名前:NAME IS NULL mailto:sage [2007/11/06(火) 02:57:24 ID:???] >>301 つかどういうタイプの複製? ガシガシ更新されるテーブルのリアルタイムの複製・・・レプリケーション あるホストの現時点のテーブルを別のホストに複製・・・ダンプ&インポート などなど
303 名前:301 [2007/11/06(火) 03:10:44 ID:1jsfWYs7] >>302 ありがとうございます。ガシガシ更新されるタイプではないと思います。 フォームの記入確認のための仮登録のためのテーブルがほしくて、 本登録用のテーブルを複製したいと考えてます。テーブルも今はカラです。 それだけ考えたらデータないんだから手作業で作ればいいって話なんですが、 いずれバックアップの知識も必要と思ったので聞きました。 テーブル単位で複製とDB丸ごと複製の違いすらよくわかってないんで、 いろいろ聞きたいなと。。 >ガシガシ更新されるテーブルのリアルタイムの複製・・・レプリケーション >あるホストの現時点のテーブルを別のホストに複製・・・ダンプ&インポート どっちも大切そうですね 使い分けも含めて、どこかわかりやすく解説してるサイトないでしょうか レプリケーションて聞いたのも初めてですが…
304 名前:NAME IS NULL mailto:sage [2007/11/06(火) 12:01:12 ID:???] >>303 とりあえずこのへんかな ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060122/227654/?ST=oss
305 名前:NAME IS NULL mailto:sage [2007/11/06(火) 12:44:20 ID:???] >>303 ま、とりあえずググレ。または自分のレベルにあった本を嫁。
306 名前:301 mailto:sage [2007/11/06(火) 15:40:03 ID:???] >>304 おお、ありがとうございます よくわからないのでやっぱり本買ったほうがいいですね >>305 もサンキュ
307 名前:NAME IS NULL mailto:sage [2007/11/08(木) 10:17:12 ID:???] ワイルドカードで複数のDBを管理するアカウント作成方法を教えてください 例えば、aaa-aaa と aaa-bbb と aaa-ccc のDBを操作出来るようにするにはどうやったらいいのでしょう? grant all on aaa%.* to ユーザー名@localhost identified by 'パスワード'; で作るとエラーが出て作れません。 %がワイルドカードですよね?
308 名前:NAME IS NULL mailto:sage [2007/11/08(木) 11:12:54 ID:???] `aaa-%`.* とか
309 名前:NAME IS NULL mailto:sage [2007/11/08(木) 12:41:46 ID:???] >>308 あ! もしかして「``」が必要なんでしょうか? 自分は「''」でやっていたので駄目だったのかな。
310 名前:NAME IS NULL mailto:sage [2007/11/08(木) 14:44:06 ID:???] そうでした ありがとうございました!
311 名前:NAME IS NULL [2007/11/09(金) 12:04:19 ID:VVwJql6u] drop table test; 日付と、果物名と、金額の以下のようなtableですが、 --------------------------------- create table test( date date, item varchar(255), money int ) charset=utf8; insert into test(date,item,money) values('2007-01-01', '林檎', 100); insert into test(date,item,money) values('2007-01-02', '林檎', 99); insert into test(date,item,money) values('2007-01-01', '蜜柑', 100); insert into test(date,item,money) values('2007-01-02', '蜜柑', 99); --------------------------------- 一番最新の日付の価格を果物ごとに知りたい場合のselectはどのようにしたら良いのでしょうか? 単純に group by item とすると 1/1 の金額が出てしまうので、order by で並び替えた後に group by できるといいのですがやはり構文エラーとなります。 どのような select文 だとできるのでしょうか? 一応、単純に考えると以下のような形は思い浮かびますがこれが最良なのでしょうか。 SELECT * FROM (SELECT date, item, money FROM test ORDER BY date desc) a GROUP BY a.item;
312 名前:NAME IS NULL mailto:sage [2007/11/09(金) 12:30:33 ID:???] select max(date),item from test group by item
313 名前:312 mailto:sage [2007/11/09(金) 12:57:47 ID:???] ごめん 果物ごとの価格なのね select test.date,test.item,test.money from test, (select max(date) as date,item from test group by item) a where test.date = a.date and test.item = a.item;
314 名前:NAME IS NULL mailto:sage [2007/11/09(金) 13:10:55 ID:???] 複数バージョンのmysqlをlinuxにインストールして同時に使用したいのですが、 方法などを解説しているサイトなんかがあったら教えてください。 バージョンは4.1xと5.0xを入れたいです。よろしくお願いします。
315 名前:NAME IS NULL [2007/11/09(金) 14:56:53 ID:VVwJql6u] >>313 有難う御座います。参考になります。
316 名前:314 mailto:sage [2007/11/09(金) 15:01:42 ID:???] テンプレのFAQを足がかりにいろいろ試してみて自己解決しました。 お騒がせしました。
317 名前:NAME IS NULL mailto:sage [2007/11/09(金) 18:34:27 ID:???] MySQL5.1ってWin98には対応して無い? 前に4.0使ったときは98向けの管理ソフトも同梱してたはずなんだけど・・・
318 名前:NAME IS NULL mailto:sage [2007/11/09(金) 19:01:08 ID:???] Win9x時代って、サービスって動かせたっけ?
319 名前:NAME IS NULL mailto:sage [2007/11/09(金) 19:27:30 ID:???] やっぱサービスでしか動かせない?
320 名前:NAME IS NULL mailto:sage [2007/11/09(金) 19:38:28 ID:???] なんとか4.0探してきた… XOOPS入れようとしただけで何故こんなに苦労を・・
321 名前:NAME IS NULL mailto:sage [2007/11/11(日) 00:11:18 ID:???] さくらインターネットが未だに化石のようなmysql4.02なんてバージョン使ってるから うまく動かないサブクリエがあってはまった。 死ねよ
322 名前:NAME IS NULL mailto:sage [2007/11/11(日) 00:56:00 ID:???] 4.1なら状況はだいぶ変わるのにねぇ。 そんなうちの仕事場は3.2。
323 名前:NAME IS NULL mailto:sage [2007/11/11(日) 02:05:07 ID:???] 俺のPCはWin98SE だから4.0しか使えない・・
324 名前:NAME IS NULL mailto:sage [2007/11/11(日) 04:51:39 ID:???] サブクリエ
325 名前:NAME IS NULL mailto:sage [2007/11/11(日) 05:57:52 ID:???] 本来ならWin98SEなぞ最初から対応せずにステでもよかったぐらいでは PC98とかじゃない限りLinuxでも入れたほうが幸せになれそうだ そういえば漏れのクリエ埃まみれだぜ
326 名前:NAME IS NULL mailto:sage [2007/11/11(日) 11:43:48 ID:???] PC98ならFreeBSDでええやん
327 名前:NAME IS NULL mailto:sage [2007/11/11(日) 13:02:30 ID:???] そろそろ新しいの買えよ。
328 名前:NAME IS NULL mailto:sage [2007/11/11(日) 13:19:07 ID:???] >>322 3.23 ならともかく、3.2 はないだろ。
329 名前:322 mailto:sage [2007/11/11(日) 13:32:52 ID:???] >328 あ、3.23だ。誤字すまん
330 名前:NAME IS NULL mailto:sage [2007/11/11(日) 16:09:05 ID:???] 5000テーブルくらいあるMyISAM型DBでうまくキャッシュさせる方法はあるでしょうか? table_cacheはデスクリプタ数の制限で頭打ちになるようでテーブルをスキャンすると まったくヒットしなくなります。アドバイスよろしくお願いします。
331 名前:NAME IS NULL mailto:sage [2007/11/11(日) 19:13:40 ID:???] スレ違いだったらすいませんが、、、、 OS XPPro MySQL 4.1.20 かねやんMySQLAdmin 1.43 サーバのキャラクタセット -> クライアントのキャラクタセット -> sjis となっていて日本語が正しく表示できないんですけど、 対処方法とか判る方おられませんか?
332 名前:NAME IS NULL [2007/11/11(日) 20:15:57 ID:8MXImYta] >>331 サーバのキャラクターセットがsjisではないから
333 名前:kbtUzOSLgCqw mailto:kwmalv@fjcnjp.com [2007/11/12(月) 01:52:15 ID:???] aBjp6C <a href="tiggsdeqsggu.com/">tiggsdeqsggu</a>, [url=itjnkpnbgxqv.com/]itjnkpnbgxqv[/url], [link=mgpltdmehpou.com/]mgpltdmehpou[/link], wfwmdomlhaas.com/
334 名前:NAME IS NULL mailto:sage [2007/11/12(月) 16:24:23 ID:???] ユニコードの対応って4.1からだったのね。 それ以前のバージョンは本当に糞だな
335 名前:NAME IS NULL mailto:sage [2007/11/13(火) 00:07:16 ID:???] 質問させてください。datetime型やdate型のカラムを含むテーブルの更新は どうしたらいいんですか? create table nametable ( namae varchar(30), tourokubi date ); 上記のようにして作ったテーブルにデータを入れるとき、 insert nametable values("yamada", ?); ?の部分をどうしたらいいのかわかりません。 ためしに2000-10-10を入れたらエラーになり、20-10-10を入れたら 0000-00-00が登録されました。 アドバイスどなたかお願いします。 マニュアルも読んだんですが良くわかりませんでした。
336 名前:NAME IS NULL [2007/11/13(火) 00:08:22 ID:3kQWoYfz] あ、すみません あげさせてもらいます
337 名前:NAME IS NULL mailto:sage [2007/11/13(火) 02:04:05 ID:???] insert into nametable values ('yamada','2000-10-10'); insert into nametable values ('suzuki','2001-11-11'); insert into nametable values ('satou', '2002-12-12'); select * from nametable; +--------+------------+ | namae | tourokubi | +--------+------------+ | yamada | 2000-10-10 | | suzuki | 2001-11-11 | | satou | 2002-12-12 | +--------+------------+ 3 rows in set (0.00 sec) 問題ナス
338 名前:LdbDyhTGoUYCcmEFi mailto:ogrqst@ujwsec.com [2007/11/13(火) 02:45:46 ID:???] Zq5NGz <a href="nuawugytijbm.com/">nuawugytijbm</a>, [url=mdwilqiupmwu.com/]mdwilqiupmwu[/url], [link=temytddeiypd.com/]temytddeiypd[/link], pvnazjgozclx.com/
339 名前:NAME IS NULL mailto:sage [2007/11/13(火) 04:36:27 ID:???] >>337 ありがとう '2002-12-12'というふうに、クオーテーションでくくってませんでした 解決しました
340 名前:ImjZRDaHx mailto:iobcoo@ddraxs.com [2007/11/14(水) 03:33:12 ID:???] c6uT8r <a href="phvtguriopjb.com/">phvtguriopjb</a>, [url=ugkiayubbqsd.com/]ugkiayubbqsd[/url], [link=ewwtjidjgvjy.com/]ewwtjidjgvjy[/link], bvhgpkicasvb.com/
341 名前:NAME IS NULL [2007/11/14(水) 10:14:45 ID:fJXBbwnJ] 今インストールするのに最適なバージョンって何ですか? そろそろ5も枯れてきているのでしょうか?
342 名前:NAME IS NULL mailto:sage [2007/11/14(水) 11:28:10 ID:???] 今なら5.0でしょ。場合によっては5.1でもいいかもよ。 5.0はかなり前から十分に枯れてるというか、 古いバージョンを使う理由は基本的にはないよ。
343 名前:NAME IS NULL [2007/11/15(木) 02:06:02 ID:XFrdNKef] t1とt2のテーブルに共通するIDを削除したいと思います。 DELETE FROM t1 INNER JOIN t2 ON t1.id=t2.id WHERE t1.id='test' として、t1とt2を結合し、同じidのtestを削除しようとしたのですが、削除出来ません。 リファレンスを見ると、JOINは使えるとのことなので上記のようにしていますが、 どこがおかしいのでしょうか?ご指摘・アドバイスいただければと思います。
344 名前:NAME IS NULL mailto:sage [2007/11/15(木) 03:27:54 ID:???] >>342 ありがとうございました 4.1文字化け問題の記憶があって 何か新しいものへの抵抗があるんですよね…
345 名前:NAME IS NULL mailto:sage [2007/11/15(木) 04:19:43 ID:???] >>343 誤り mysql> delete from t1 inner join t2 on t1.c1=2 where t1.c2=t2.c2; ERROR 1064 (42000): You have an error in your SQL syntax; … 正解 mysql> delete t1, t2 from t1 inner join t2 on t1.c1=2 where t1.c2=t2.c2; Query OK, 2 rows affected (0.00 sec) 変な構文
346 名前:NAME IS NULL mailto:sage [2007/11/15(木) 04:21:30 ID:???] ごめん間違えた mysql> delete t1, t2 from t1 inner join t2 on t1.c2=t2.c2 where t1.c2=2; Query OK, 2 rows affected (0.00 sec)
347 名前:NAME IS NULL mailto:sage [2007/11/15(木) 06:41:58 ID:???] >>344 それは老化だよ
348 名前:NAME IS NULL mailto:sage [2007/11/15(木) 11:10:51 ID:???] >>344 文字化けはMySQLが枯れてるかどうかの問題じゃない、ってのは分かってる? 単に3.xの時と同じ運用だと問題が起こっていた(ノウハウが溜まっていなかった)、という話。 ノウハウについてはかなり前から充分溜まってる。 ちなみに4.1を使う理由は全くないので、4.1を検討するくらいなら5.0以降を使うべき。 未だに4.0以前の知識しかない人を見かけるけど、なぜなんでしょ。 MyNAのFAQにもずいぶん前からいろいろあるのに……。啓蒙不足? それとも書籍が腐ってるせいかねぇ。PHPと一緒なやつとかは相変わらず酷いんでしょうか。
349 名前:NAME IS NULL mailto:sage [2007/11/15(木) 12:01:08 ID:???] >>345-346 ありがとうございます!出来ました。 deleteの後ろに削除するテーブルを指定するんですね。
350 名前:NAME IS NULL mailto:sage [2007/11/15(木) 23:05:26 ID:???] >>348 4.1初期のバグやら仕様ミスを知らない? 落ち着いたのは4.1.12以降だろ。 あれを経験していれば、安易に版数変えたく無いわな。
351 名前:NAME IS NULL mailto:sage [2007/11/16(金) 00:35:13 ID:???] は? あれを経験しているからこそさっさとかえるべきだろ?
352 名前:NAME IS NULL mailto:sage [2007/11/16(金) 00:59:28 ID:???] >>351 まあ判っているとは思えないな。w
353 名前:NAME IS NULL mailto:sage [2007/11/16(金) 01:17:37 ID:???] 2007年に入ってから1回しかupdateしてない4.1系列よりは ほぼMonthlyでupdateされてる5.0系列の方がいいと思うよ。 5.0はEnterpriseでサブスクリプション契約になったから それだけ品質には気を使うようになってる。 B.1.1. Changes in MySQL 4.1.24 (Not yet released) B.1.2. Changes in MySQL 4.1.23 (12 June 2007) C.1.1. Release Notes for MySQL Enterprise 5.0.52 [MRU] (Not yet released) C.1.2. Release Notes for MySQL Enterprise 5.0.50 [MRU] (19 Oct 2007) C.1.3. Release Notes for MySQL Enterprise 5.0.48 [MRU] (27 August 2007) C.1.4. Release Notes for MySQL Enterprise 5.0.46 [MRU] (13 July 2007) C.1.6. Release Notes for MySQL Enterprise 5.0.44 [MRU] (21 June 2007) C.1.7. Release Notes for MySQL Enterprise 5.0.42 [MRU] (23 May 2007) C.1.8. Release Notes for MySQL Enterprise 5.0.40 [MRU] (17 April 2007) C.1.9. Release Notes for MySQL Enterprise 5.0.38 [MRU] (20 March 2007) C.1.11. Release Notes for MySQL Enterprise 5.0.36 [MRU] (20 February 2007) C.1.12. Release Notes for MySQL Enterprise 5.0.34 [MRU] (17 January 2007)
354 名前:NAME IS NULL mailto:sage [2007/11/16(金) 11:07:42 ID:???] >>350 いや知ってるが文字コード云々言ってる連中の大半は3.xあたりの知識のままで 運用しようとしてるだけでしょ。 (つか当時のことを知っていれば「いまどのバージョンが安定してる?」なんて聞き方はしない) まあエンコディング周りは鬼門だからなぁ。 サロゲートペア対応してないのが問題っていうならその通りだし、 将来対応したときに問題が起こりうるってのはそうだと思うけど。
355 名前:NAME IS NULL mailto:sage [2007/11/16(金) 13:24:09 ID:???] >>353 裏返せばそれだけ安定していないって事だけどなw
356 名前:NAME IS NULL mailto:sage [2007/11/16(金) 18:43:14 ID:???] >>355 その通り安定してないんだけど、それは4.1もいっしょだよ。 新機能でない限りほどんどのバグが4.1、5.0、5.1で共通。 5.0 Enterpriseならバグ報告すれば翌月直るけど、5.0 Community、 4.1は同じバグが長期間放置される。だから5.0 Enterpriseオススメ。 MySQL ABはEnterpriseのパッケージを契約顧客にしか配ってないけど、 結局GPLなんでミラーされてしまっている。 mirror.provenscaling.com/mysql/
357 名前:NAME IS NULL mailto:sage [2007/11/16(金) 22:46:25 ID:???] で、結局開発する時はどの環境が無難なの? 自分は昔から4.0.26だけど。
358 名前:NAME IS NULL mailto:sage [2007/11/16(金) 23:41:28 ID:???] stableは5.0なので、それの最新でいいでしょ。 場合によっては5.1でもいいんじゃね?
359 名前:NAME IS NULL [2007/11/17(土) 08:48:17 ID:XVlaU+5c] 以下のSQL文をphpから実行しようとするとエラーになって画面が白くなります テーブルの指定やカラム数、並びともに間違ってないのでどこがおかしいのかわかりません 誰かご意見ください お願いします $sql = "insert into testtable values( 0, $_SESSION['loginId'], $_SESSION['loginPass'], 1, $_SESSION['staffName'], $_SESSION['sType'], $_SESSION['name1'], $_SESSION['name2'] );
360 名前:359 [2007/11/17(土) 09:02:46 ID:XVlaU+5c] あ、ごめんなさい ); となってますが、)"; の書き間違いです またDBへの接続はうまくいっています また、 $sql = "insert into testtable (id,loginId) values(0,"abc"); というSQL文は ちゃんと動作しました
361 名前:NAME IS NULL mailto:sage [2007/11/17(土) 09:12:36 ID:???] >>359 各値がクォーテーションで囲まれていないからでは?
362 名前:NAME IS NULL mailto:sage [2007/11/17(土) 09:36:55 ID:???] $sql をダンプしてみりゃ一発ではないか
363 名前:NAME IS NULL mailto:sage [2007/11/17(土) 12:24:46 ID:???] 文字列を長さ順でソートしようと考えています。 varchar に対して length(), char_length() を行うとして、 length()の場合は、文字列と一緒に格納されいているバイト数を返すだけだから高速 char_length()の場合は、マルチバイトを考慮して文字数を数えるので低速 という認識なのですがあっていますかね?
364 名前:NAME IS NULL mailto:sage [2007/11/17(土) 15:25:14 ID:???] >>363 多分あってるけど実測した結果を見たことは無いな。 適当に数十万レコードくらいでっちあげて試験してみたら? レポート楽しみに待ってます。
365 名前:NAME IS NULL mailto:sage [2007/11/17(土) 15:46:36 ID:???] >>359 $sql = "insert into testtable values( 0, {$_SESSION['loginId']}, {$_SESSION['loginPass']}, 1, {$_SESSION['staffName']}, {$_SESSION['sType']}, {$_SESSION['name1']}, {$_SESSION['name2']} ); つか、MySQLじゃなくてPHPの文法エラーな
366 名前:PFPfSPoWxWorN mailto:email@gmail.com [2007/11/17(土) 22:29:08 ID:???] Hi! Nice site! <a href=dthqlr.cn/beer/ >hi </a> [URL=dthqlr.cn/beer/ ] guys [/URL] dthqlr.cn/beer/
367 名前:363 mailto:sage [2007/11/17(土) 23:58:29 ID:???] >>364 確かにやってみれば済むことですね。 今度やってみて結果書きますね。
368 名前:NAME IS NULL mailto:sage [2007/11/18(日) 10:21:12 ID:???] MySQL4.0のサポートっていつまで? 今年いっぱい?
369 名前:NAME IS NULL mailto:sage [2007/11/18(日) 22:51:32 ID:???] 5.1からmyisamのデータアクセスにmmap使うオプションがあるので、 巨大なデータファイルを扱うなら5.1はかなりいいぞ。 はやくfalconでないかな。
370 名前:BvCrZSkVPu mailto:hello@gratz.com [2007/11/19(月) 12:36:49 ID:???] Hi! Nice site! <a href=ozzyosbournemusic.blogspot.com/ >hi </a> [URL=ozzyosbournemusic.blogspot.com/ ] lol wut???[/URL] ozzyosbournemusic.blogspot.com/
371 名前:NAME IS NULL [2007/11/19(月) 14:14:57 ID:pgXAP1I1] AUTO_INCREMENTでIDを自動挿入しているんですが、 あるカラムをdeleteしたらそこの番号が空白になりますよね? 一覧表示したときにIDも表示してると歯抜けになって格好悪いのですが、 IDを詰めることはできませんか? それとも気にするべきではありませんか?
372 名前:NAME IS NULL mailto:sage [2007/11/19(月) 14:29:05 ID:???] 気にするべきでない ID詰めるのはちまちまupdateすりゃできるけど 他のテーブルの外部キーになっていればそれも無理
373 名前:NAME IS NULL mailto:sage [2007/11/19(月) 14:36:15 ID:???] 削除されたものも含めて「一意」なんだ、と思うべき。 番号表示を気にしたいなら別のカラムでも作れ。
374 名前:NAME IS NULL [2007/11/19(月) 21:46:59 ID:tlX6K+Wh] 一度に大量(100や200)のクエリを実行したとして 速度的な影響って出ますか? 某所で「何度も実行するべきではない」っと聞いたので 気になっているのですが、調べる術がありません。。
375 名前:NAME IS NULL mailto:sage [2007/11/19(月) 22:24:19 ID:???] そら少ないより多いほうが影響するでしょ。 それにクエリの内容によって影響も変わる。 例えばprimary keyによるSELECTを大量に発行してもたいしたことないし、 1回のクエリで途方もない時間がかかる可能性もあるし。 更新系のクエリかどうかによっても違うし。 つかやってみれば分かるでしょ。
376 名前:374 mailto:sage [2007/11/20(火) 00:59:42 ID:???] >>375 ありがとうございます。とりあえずWHEREによるSELECTをしました。 元データ1万件に対してWHEREで対象となるキーを抽出してSELECT。 これをPHPを使い、50回・100回と繰り返し処理をさせました。 ローカル環境でやりましたが、特に体感速度は変わりません。 これ以上の条件でやった場合はどうなるかわかりませんが、 サーバダウンするほどでもないので、気にすること無いですね。
377 名前:NAME IS NULL mailto:sage [2007/11/20(火) 10:50:13 ID:???] きっと query cacheとか buffer sizeとか、explainなんて気にしないでパフォーマンスチェックしてるんだろうな。
378 名前:NAME IS NULL mailto:sage [2007/11/20(火) 12:32:08 ID:???] 1プロセスで繰り返し実行しても分からんでしょ。 20個ぐらい多重かけないと。
379 名前:NAME IS NULL mailto:sage [2007/11/20(火) 15:27:11 ID:???] >>377 query cacheとか buffer sizeとかは気にすべきなの?
380 名前:NAME IS NULL mailto:sage [2007/11/20(火) 18:21:33 ID:???] InnoDBからMyISAMに変換するにはどうすればいいでしょうか? MyISAMからのInnoDBへはダメとは書いていましたが、 変換しなくても、mysqlダンプしてから、 InnoDBをMyISAMにして、リストアすればいいのでしょうか? この場合、InnoDBで使っていたゴミはどこかに残っているのでしょうか?
381 名前:NAME IS NULL mailto:sage [2007/11/20(火) 19:11:50 ID:???] ダンプしてdatabase作り直してリストアだろうね。 ところでゴミって例えばどんな?
382 名前:NAME IS NULL mailto:sage [2007/11/20(火) 19:39:01 ID:???] alter table foo type=myisam; じゃだめなの?
383 名前:NAME IS NULL mailto:sage [2007/11/20(火) 19:53:50 ID:???] alter table t engine=MyISAM じゃだめなのかね?
384 名前:380 mailto:sage [2007/11/20(火) 20:24:55 ID:???] ダンプして、テーブルを全部削除して、 テーブルのengineとdefault charsetを目的の値にしてから、 インポートしました。by phpmyadmin ゴミというのは、 /var/lib/mysqlにある、 ib_logfile0 ib_logfile1 ibdata です、これはInnoDBを使ってなければ不要なのでしょうか? alterコマンドというのがあるんですね、 勉強になります、ありがとうございました。
385 名前:rPCNKKOGk mailto:ruhdur@bjfbuz.com [2007/11/20(火) 21:32:04 ID:???] bYY6fE <a href="rpggmtkxhdkm.com/">rpggmtkxhdkm</a>, [url=karvpocaoycb.com/]karvpocaoycb[/url], [link=wnhrbtrhtibf.com/]wnhrbtrhtibf[/link], yisqierftazu.com/
386 名前:UwuAdnimP mailto:pyryui@ouzryg.com [2007/11/20(火) 21:37:13 ID:???] 9aTefE <a href="kbeddzwnowhh.com/">kbeddzwnowhh</a>, [url=ozgwbcnkrzhq.com/]ozgwbcnkrzhq[/url], [link=cvvcnxrwrcij.com/]cvvcnxrwrcij[/link], eswjtgnpbecy.com/
387 名前:ETKZBETklTBU mailto:rdedrh@zpkfzw.com [2007/11/20(火) 21:37:51 ID:???] LMLHSf <a href="nqozcaxavxlj.com/">nqozcaxavxlj</a>, [url=zrgempvehxsb.com/]zrgempvehxsb[/url], [link=wxcyjqzvfage.com/]wxcyjqzvfage[/link], qivlxpxtvocg.com/
388 名前:QbZbkpjqiWEcVPyQSP mailto:dzqyay@agryua.com [2007/11/20(火) 21:55:09 ID:???] UHdzTz <a href="rgtmsxtzhmrj.com/">rgtmsxtzhmrj</a>, [url=dbliloqnljmk.com/]dbliloqnljmk[/url], [link=gyabhkseriwi.com/]gyabhkseriwi[/link], dxnduoaksfnm.com/
389 名前:gAbBDHtiBWXT mailto:hjfkhe@ehdqyv.com [2007/11/20(火) 21:56:20 ID:???] 1PdgbK <a href="rrnhflljxwoy.com/">rrnhflljxwoy</a>, [url=jjmupzdjecfv.com/]jjmupzdjecfv[/url], [link=yqgknoqilafb.com/]yqgknoqilafb[/link], mkhyknodbcxd.com/
390 名前:NAME IS NULL mailto:sage [2007/11/20(火) 23:00:07 ID:???] MySQLの4.1.15です。 例えば uriageテーブルが uriageYMD date, ordernum int(4), mise int(3), kyaku int(5), shouhinID int(5), kingaku int(8) kokyakuテーブルが mise int(3), kyaku int(5), kyakumei varchar(20), kakari int(4) salseテーブルが mise int(3), kakari int(4), kakarimei varchar(20) とあって、 uriageテーブルからmise,kyaku,uriageYMD, kokyakuテーブルから kyakuに一致するkyakumei,kakari を持ってくるまでは出来たのですが、それにsalseテーブル からkokyakuテーブルのkakariに一致するkakarimeiを 持ってくるにはどうすれば良いんでしょうか?
391 名前:NAME IS NULL mailto:sage [2007/11/20(火) 23:52:43 ID:???] すさまじくダサいテーブル名/カラム名だな。 1. ordernum(英語)とmise(ローマ字)が混じってる 2. kokyakuテーブルのPRIMARY KEY(と思われるもの)がkyaku。普通はkokyaku側はid、uriage側はkokyaku_id。 3. salseじゃなくてsales ってのが。 ダメSIの臭いがプンプンするぜ。 SELECT u.mise, u.kyaku, u.uriageYMD, k.kyakumei, k.kakari, s.kakarimei FROM uriage u INNER JOIN kokyaku k ON k.kyaku = u.kyaku INNER JOIN salse s ON k.kakari = s.kakari;
392 名前:NAME IS NULL mailto:sage [2007/11/21(水) 00:03:54 ID:???] >>390 sirimasen
393 名前:NAME IS NULL mailto:sage [2007/11/21(水) 00:04:51 ID:???] まぁあくまでもここに例に出す為に即興で作った名前ですから… w 何はともあれ、m(__)m です。 w
394 名前:391 mailto:sage [2007/11/21(水) 01:01:47 ID:???] >>393 即興でこれかよ! そっちの方がやべーYO!
395 名前:NAME IS NULL [2007/11/21(水) 02:05:40 ID:H0U/ijnh] 1万件のテーブルを正規化して計3テーブルを LEFT JOINで結合しているのですが、物凄く重いです。 ローカル環境で動作確認していますが、PCがダウンします。 やはり、件数が多いからサーバダウンするのでしょうか? それとも、MySQLのチューニングが上手く行ってないのでしょうか? インデックスの調節やEXPLAINをして確認しましたが、 Using filesortとUsing temporary が常に出ます。 サーバはWindowsXPでMySQL4.0.20で確認しています。
396 名前:NAME IS NULL mailto:sage [2007/11/21(水) 04:29:23 ID:???] AccessからMySQL(charsetはUTF-8)にODBC接続したんですけど 日本語が化けたり化けなかったりします
397 名前:NAME IS NULL [2007/11/21(水) 04:32:44 ID:88wrK5LA] >397 >MySQL4.0.20 捨てろ
398 名前:NAME IS NULL mailto:sage [2007/11/21(水) 09:16:19 ID:???] たかが1万件ごときでそんなに重くなるはずがない。 インデックスの付け方が悪い。show create tableさらせ。 あと397の言うとおり、4.0.20は捨てろ。
399 名前:NAME IS NULL mailto:sage [2007/11/21(水) 10:23:16 ID:???] ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 【 あなたのタイピングどのくらい!? 】 2007/11/21 配信 制限時間内に表示される画像内の、数字やアルファベットを次々とタイプ入力していく。 あなたのタイプ成功率が刻々と表示されていく。また、その時々のランキングにも表示さ れていく。都道府県別のランキングもあれば、それぞれ友達と好きなチームを作り競い 合うチーム別ランキングもあって楽しめれる! また、タイプが成功したものはそのまま、「 国別対抗オンラインクリックゲーム 」の日本 チームのクリック数に貢献される。数々の激戦を戦い抜いてきた日本チームも、現在は 強敵ハンガリーチームに続いて第2位となっている。タイプの練習がそのまま日本チー ムの優勝に貢献するかも!?あなたもぜひやってみては? 参加するには各種のツールを使う方法もあるが、まずはアクセスするだけでサイトから 簡単にできる「 小町 」をお試しください。なれてきたら各種ツールを試すのも楽しい。 タイプ入力サイトその1「 小町 」 f106.dyndns.org/komachi/cgi/acsupporter/supporter.cgi?m=ff 「 国別対抗オンラインクリックゲーム 」については、日本チームのオフィシャルサイトで。 clickjapan.jp/ ※上記サイトはすべて「 国別対抗オンラインクリックゲーム 」日本チームの有志の 方達の運営で、すべて無料です。 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
400 名前:NAME IS NULL mailto:sage [2007/11/21(水) 11:36:47 ID:???] 4.0系から4.1系に変えたら、劇的に早くなるのでしょうか?
401 名前:NAME IS NULL mailto:sage [2007/11/21(水) 11:39:25 ID:???] >>356 で、そのEnterpriseなVersionの正式にライセンス契約してない貧乏泥棒ユーザーが、 本家にBugReport送るのってありですか?
402 名前:395 mailto:sage [2007/11/21(水) 12:05:39 ID:???] >>398 テーブル構成は住所録+沿線情報になりまして、 aテーブルには基本情報(user_id、pref、address) bテーブルには会員の駅情報(user_id、ensen_id、station_id) cテーブルには参照する駅情報(ensen、ensen_id、station、station_id) こういう構成です。()内はフィールド名です。各1万件あります。 SELECT * FROM a LEFT JOIN b ON a.user_id=b.user_id LEFT JOIN c ON b.station_id=c.station_id みたいなSQLで結合しているのですが、これが非常に重いです。 インデックスは各idごとに付けています。 MySQLのバージョンは会社では4.0.20なので、合わせています。 だからすぐに捨てることは出来ないので、それが問題です。
403 名前:NAME IS NULL mailto:sage [2007/11/21(水) 12:40:35 ID:???] >>402 explainした?
404 名前:NAME IS NULL mailto:sage [2007/11/21(水) 12:45:10 ID:???] >>395
405 名前:NAME IS NULL mailto:sage [2007/11/21(水) 13:17:45 ID:???] >>402 そのSQLとexplainの結果をそのまま貼り付けよー 結合しているせいじゃない気がするよ
406 名前:NAME IS NULL [2007/11/21(水) 15:49:36 ID:88wrK5LA] SELECT * FROM a LEFT JOIN (b LEFT JOIN c ON b.station_id=c.station_id) ON a.user_id=b.user_id
407 名前:NAME IS NULL mailto:sage [2007/11/21(水) 16:01:19 ID:???] 権限テーブルについて質問です。 したいこと --> 'hoge'と言う、root権限から、grant と mysqlデータベースについてのアクセス権のみ省いたUserを作成したい。 ちなみに、この’hoge’は、LAN内からののみアクセス可能とする(192.168.0.%) やったこと --> rootでloginして、 grant all on *.* to 'hoge'@'192.168.0.%' identifed by '******'; とやって、こんなUserができた。 select * from mysql.user where user = 'hoge' Host: 192.168.0.% User: hoge Password: ****** Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0
408 名前:つづき mailto:sage [2007/11/21(水) 16:01:51 ID:???] で、一旦quitしてから、’hoge’で再loginしてから、 show databases; や select * from mysql.user; するとmysqlデータベースの中身が参照できる(あたりまえ。) ここまではいいとして、ここから、再度rootでloginしなおして、 revoke all on mysql.* from 'hoge'@'192.168.0.%'; とやってみたら、こんなError ERROR 1141 (42000): There is no such grant defined for user 'hoge' on host '192.168.0.%' そりゃあhogeにはgrant option与えてないけど、なんで? Revokeの使い方間違ってる? そこで、 Insert into mysql.db Values('192.168.0.%','mysql','hoge','N','N'・・・'N'); でmysql.dbテーブルに直接インサートしてみた。 select * from mysql.db where user = 'hoge': Host: 192.168.0.% Db: mysql User: hoge Select_priv: N Insert_priv: N Update_priv: N Delete_priv: N Create_priv: N Drop_priv: N Grant_priv: N References_priv: N Index_priv: N Alter_priv: N Create_tmp_table_priv: N Lock_tables_priv: N Create_view_priv: N Show_view_priv: N Create_routine_priv: N Alter_routine_priv: N Execute_priv: N となったので、flush privileges をかけて、rootはlogout。再びhogeでログイン。 そこで、show databases や show tables from mysql をしたら、中が読めてしまう。 MySQL Serverを再起動掛けて見てもやっぱり同じ。 (これでmysql.*が読めないようにすることが目的) これってやっぱり、最初のgrantの時に、一つ一つDbを明示して権限を与えないとダメですか。 出来れば、既存の権限から、特定のDbだけ除外したい。 実のことを言うと、BackUp用に、他のマシンから各Db、Tableの内容をdumpしたいんだけど、 例えば本番マシン内で、新たにDbが作成されたりした時に、いちいちlocalコンソールからloginして、 増えたDbの分だけgrantしたり、消去されたDbについてRevorkeしたりすんのが煩雑なのと、 DBをフルダンプした時に、mysqlデータベース内の権限テーブルまで吐いてしまうのを回避したい。
409 名前:NAME IS NULL mailto:sage [2007/11/21(水) 16:36:37 ID:???] >>401 バグだって切り分けができてるなら bugs.mysql.com/ へのレポートしてOK。 Enterpriseのソースはbitkeeperにも置いてあるから、 別に入手元は問われないよ。 対応はベストエフォートだけど、これはしょうがない。 契約顧客は専用のサポートサイトがあって、 そちらにレポートするときちんと担当者がアサインされて 障害の切り分けから直すところまでつきあってくれる。
410 名前:NAME IS NULL mailto:sage [2007/11/21(水) 16:52:40 ID:???] >>407 なげーよ。
411 名前:409 mailto:sage [2007/11/21(水) 16:52:48 ID:???] BitKeeperはこちら。 mysql.bkbits.net/ ちなみに、しつこくバグレポートしてると、 そのうちMySQL Quality Contributorとして認定してくれます。 MySQL Quality Contributorになると MySQL Enterpriseのライセンスがタダでもらえます。
412 名前:NAME IS NULL mailto:sage [2007/11/21(水) 17:10:19 ID:???] Revokeの使い方間違ってる
413 名前:NAME IS NULL mailto:sage [2007/11/21(水) 17:18:33 ID:???] >>407 grant usage on mysql.* to 'hoge'@'192.168.0.%' identifed by '******'; grant all on *.* to 'hoge'@'192.168.0.%';
414 名前:NAME IS NULL mailto:sage [2007/11/21(水) 17:28:41 ID:???] mysqld の起動時、すべての権限がメモリに読み込まれます。 データベース権限、テーブル権限、およびカラム権限はすぐに反映されますが、 ユーザレベルの権限はユーザが次回接続したときに有効となります。 GRANT または REVOKE によって行われた権限テーブルへの変更については、サーバは即座に認識します。 INSERT、UPDATE などを使って手動で権限テーブルを変更した場合、 FLUSH PRIVILEGES ステートメントまたは mysqladmin flush-privileges を実行して サーバに権限テーブルを再読み込みさせる必要があります。 See 項4.4.3. 「権限の変更はいつ反映されるか」。
415 名前:NAME IS NULL mailto:sage [2007/11/21(水) 18:00:46 ID:???] >>406 >>407 権限テーブルについて自分の理解してるところを書くよ。間違ってたらごめん > grant all on *.* to 'hoge'@'192.168.0.%' identifed by '******'; ここで設定した権限(グローバルレベルの権限)は mysql.user に記述される。 ここまではいいとして、 > revoke all on mysql.* from 'hoge'@'192.168.0.%'; ここでは設定していないデータベースレベルの権限( mysql.db に記述される)を剥奪しようとしている。 だから > ERROR 1141 (42000): There is no such grant defined for user 'hoge' ... となる。これは grant all on *.* した時点で mysql.db を覗いてみればわかる。 肝心なのは MySQL が各ユーザの権限を算出するにあたって mysql.user, mysql.db などの記述を短絡的にチェックしているということ。 もし mysql.user をチェックして、そのユーザの権限に関する記述があれば( Y なら) mysql.db 以降はチェックされない。 > これってやっぱり、最初のgrantの時に、一つ一つDbを明示して権限を与えないとダメですか。 そうするのがいいと思うけど、mysql.db を直接いじって flush すればいけると思う。 その辺は詳しい人のレスを待ったほうがいいかと。
416 名前:NAME IS NULL mailto:sage [2007/11/21(水) 18:01:30 ID:???] ごめんアンカミス。>>407 , >>408
417 名前:407,408 mailto:sage [2007/11/21(水) 19:46:21 ID:???] いろいろとレスサンクス。 >>414 上にも書いてあると思うけど、flush privilegesは何回もしてる。 mysqldの再起動もやった。 >>412 ,415 Revorkの使い方間違ってるのは理解した。 (ってか今までは、ほとんど delete from mysql.user where user='***' で一旦削除してから、あらたにgrantしてた。) >>413 上の行のクエリで、mysql.userの*_privが全部'N'のhogeができあがった。 でも、そこから下の行のクエリを書けたら、*_privが全部(grant_priv以外)’Y’になった。 で、flush privileges(念のため)を掛けてから、hogeで再ログインして、 show databases と show tables from mysql でやっぱりmysql.の中身が読めてしまう。 ちなみに、この時(上の行の前、後、下の行の後のいつでも) select * from mysql.db where user='hoge'; で Enpty set が返ってくる(つまりHitなし) select * from mysql.db where db='mysql'でも Enpty set。 ちなみに、grant all on my_db1.* to 'piyo'@'192.168.%' identifed by '******'; で作ったUserでloginして show databases; したら、ちゃんと infomation_schemaとmy_db1しか表示されないし、 show tables from mysql; だと、Access denied for user 'piyo'.... となる(期待した動作) select * from mysql.db where user='piyo' で、db権限テーブルには’piyo’がちゃんと登録されてる。 う〜ん、デフォルトが’Y’で指定したのみ’N’ってのは、できないのかなあ〜。
418 名前:395 mailto:sage [2007/11/21(水) 20:09:50 ID:???] >>405 とりあえず、EXPLAINは以下の通りです。 長いですけど、絶えずUsing index; Using temporary; Using filesortが出ます。 Array ( [0] => a [table] => a [1] => index [type] => index [2] => [possible_keys] => [3] => PRIMARY [key] => PRIMARY [4] => 4 [key_len] => 4 [5] => [ref] => [6] => 20292 [rows] => 20292 [7] => Using index; Using temporary; Using filesort [Extra] => Using index; Using temporary; Using filesort ) Array ( [0] => b [table] => b [1] => ALL [type] => ALL [2] => user_id [possible_keys] => user_id [3] => [key] => [4] => [key_len] => [5] => [ref] => [6] => 4 [rows] => 4 [7] => [Extra] => ) Array ( [0] => c [table] => c [1] => ref [type] => ref [2] => station_id [possible_keys] => station_id [3] => station_id [key] => station_id [4] => 4 [key_len] => 4 [5] => b.station_id [ref] => b.station_id [6] => 1 [rows] => 1 [7] => [Extra] => )
419 名前:NAME IS NULL mailto:sage [2007/11/21(水) 20:35:32 ID:???] オレって実際には全カラムは必要ない時にも select * でクエリしちゃったりする。 一般的にこれってやっぱ無駄というか、パフォーマンスに影響するのかな。 簡単なテストでは大差なかった。 テーブルの型やドライバとかに影響しそうだけど、10個中9個取るときも必要な カラムを羅列すべきだと思う?
420 名前:NAME IS NULL mailto:sage [2007/11/21(水) 20:43:16 ID:???] インデックスが作ってあって、そのインデックスの列だけSELECTする場合、 SELECT * ⇒ インデックスとテーブルにアクセスする SELECT [必要な列のみ] ⇒ インデックスのみアクセスする となるので性能にずいぶん影響が出るよ。 あとは通信量が違う
421 名前:NAME IS NULL mailto:sage [2007/11/21(水) 21:52:53 ID:???] >>419 羅列するべき。 メリットなんてSQLで手抜ける ってぐらいじゃない。 デバッグ時は * で開発進める場合もあるけど、必ず仕上げ段階で カラムを絞りますよ。
422 名前:419 [2007/11/21(水) 22:26:02 ID:4Hr0oFqs] >>420 >>421 ありがと。これからはちゃんと羅列するようにしまっす。
423 名前:NAME IS NULL mailto:sage [2007/11/21(水) 23:12:08 ID:???] >>418 これは何かの嫌がらせか…… 人間が読める形にしてよ。
424 名前:NAME IS NULL mailto:sage [2007/11/21(水) 23:54:00 ID:???] select hoge1.fuga, hoge1.hage, hoge2.fuga, hoge2.hage from hoge as hoge1 left join hoge as hoge2 on hoge2.fuga = hoge1.fuga みたいなことってよくする?
425 名前:NAME IS NULL mailto:sage [2007/11/22(木) 00:44:25 ID:???] left join意味なくね? fuga列同士の比較だから、片方だけnullってケースにならない
426 名前:407,408 mailto:sage [2007/11/22(木) 04:21:02 ID:???] >>レスくれた方々 色々なヒントをありがとう。 たぶんできた。 grant usage on *.* to 'hoge'@'192,168.0.%' identified by '******'; これで、mysql.userに*_privが全NのUserができる。この時点で、まだmysql.dbにはなにも追加されてない。 Insert into mysql.db (`Host`,`Db`,`User`) Values('192.168.0.%','mysql','hoge'); これで、mysql.dbにUser:hoge,db:mysql,*_priv:Nのレコードが追加される。 Insert into mysql.db Values('192.168.0.%','mysql','hoge','Y','Y','Y'・・・'Y'); これで、mysql.dbにUser:hoge,db:%,*_priv:Yのレコードが追加される。(つまりUser:hogeのレコードが二件存在する) すかさず、flush privilegesで権限テーブルをflushして、hogeで再ログインすると・・・、 ついに期待通りの動作確認!!。 show databases;でmysql以外のDbが一覧で返ってきて、show tables from mysqlだと、Access denied。 とにかくhogeからはmysql Dbが完全に遮断できた。 この時に、別のターミナルからログインして、新しくDbやTableを作成しても、すかさずhoge側から参照可能。 Manualの4章あたりを何度も読み返して、なんとなくだけど接続、参照時の権限のイメージみたいなが見えてきた。 >>415 さんの言ってるように、最初の接続時にmysql.userテーブルを読んで、そこでアクセス権があれば それをセットする(グローバル設定)。なければそれぞれのDb権限を読みに行って、Dbごと(あるいはTable、columnsごとに) 権限を制御している模様。 で、Db名を明示してgrantしたUserのmysql.userを覗いてみると、なんと全てのprivが’N’になってんで、もしやと思ってやってみた。 実は今までこれ知らなかった。 ManualにはUser名にはワイルドカード使えないとは書いていたけど、その他については特に記述なし。 で、ここの少し上の方のレスで、Db名には’%’が使えそうだと思って、放り込んでみたら、できた。 ワイルドカードより、完全一致のほうが強いようだ。 (バージョンや環境によって変わるかも?でも他のやりかたがあるんだったら教えて。自分にはこれ以上思いあたらん) ちなみに、grant all on *.* to・・・ だと、mysql.userの中身を全てYに変えてしまう。 grant all on `%.*` だとsyntax error。 grant all on `%`.`*` だと Query Ok にはなるけれど、mysql.dbにはなにも追加されない。(mysql.userも変更なし) 結局 Insert into ・・・・で、たくさん’Y’を打ち込まないといけない。(これがVersionによって数が異なる) 期待通りに動作したもの 確認済み・・・4.0.26-Win32、4.0.27-Win32、5.0.37-Win32、5.0.45-Win32、5.0.45(Cent4)、5.0.50(Cent4) これから確認・・・5.0.50-Win32、5.0.22-rpm(Cent5)、5.0.27-rpm(FC6) 4.1系、5.1系は持ってないから知らない。(これだけやってどれも期待通りに行ったから、多分大丈夫だとは思うけど・・) とりあえず寝よう。
427 名前:NAME IS NULL mailto:sage [2007/11/22(木) 05:37:50 ID:???] 寝るとこまでは読んだ
428 名前:NAME IS NULL [2007/11/22(木) 07:33:12 ID:v2xY2Xgx] grant usage on *.* to 'hoge'@'192,168.0.%' identified by '******'; Insert into mysql.db (`Host`,`Db`,`User`) Values('192.168.0.%','mysql','hoge'); Insert into mysql.db Values('192.168.0.%','mysql','hoge','Y','Y','Y'・・・'Y'); 3行目まちがってないか
429 名前:NAME IS NULL mailto:sage [2007/11/22(木) 08:14:04 ID:???] >>426 おつ。ただ自分も>>428 が気になった。 Host, Db, User はたしかプライマリキーだったと思うので。 できれば「期待通りの動作」をしたバージョンでの show grants for ... と desc mysql.db を見せてくれるとうれしい。
430 名前:NAME IS NULL [2007/11/22(木) 08:28:58 ID:v2xY2Xgx] grant usage on *.* to 'hoge'@'192,168.0.%' identified by '******'; Insert into mysql.db (`Host`,`Db`,`User`) Values('192.168.0.%','mysql','hoge'); Insert into mysql.db Values('192.168.0.%','%','hoge','Y','Y','Y'・・・'Y'); の書き間違いだろうとは思ってるんだけど 一応聞いてみたんだ
431 名前:NAME IS NULL [2007/11/22(木) 10:40:57 ID:UyA449rO] OR文で「hogehoge」と「テスト」で単語検索をかけたとき 検索した本文からより単語が多い順にORDER BYで並べ替えすることってできますか? 『今日hogehogeしました。』 『hogehoge テスト』 『今日はテストがありました。』 『今日はhogehogeのテストをしました。 を 『今日はhogehogeのテストをしました。 『hogehoge テスト』 『今日hogehogeしました。』 『今日はテストがありました。』 のように、単語がたくさん当てはまる順に並べたいです。
432 名前:407,408 mailto:sage [2007/11/22(木) 11:34:02 ID:???] ちょっと前まで寝てた。 >>428 ,429,430 !!!。おっしゃるとおり、三行目は Insert into mysql.db Values('192.168.%','%','hoge','Y','Y','Y',・・・'Y'); のまちがいでした。 >>426 のクエリなら、せっかく’N’にした`mysql`での権限を、’Y’にしてしまう。 で、show grants for 'hoge'@'192.168.0.%;'の結果 GRANT USAGE ON *.* TO 'hoge'@'192.168.0.%' IDENTIFIED BY PASSWORD '******' GRANT ALL PRIVILEGES ON `%`.* TO 'hoge'@'192.168.0.%' desc mysql.db; (多分ズレまくりだけどかにんして・・・) Field | Type | Null | Key | Default | Extra ----------------------+---------------+------+-----+---------+------ Host | char(60) | NO | PRI | | Db | char(64) | NO | PRI | | User | char(16) | NO | PRI | | Select_priv | enum('N','Y') | NO | | N | Insert_priv | enum('N','Y') | NO | | N | Update_priv | enum('N','Y') | NO | | N | Delete_priv | enum('N','Y') | NO | | N | Create_priv | enum('N','Y') | NO | | N | Drop_priv | enum('N','Y') | NO | | N | Grant_priv | enum('N','Y') | NO | | N | References_priv | enum('N','Y') | NO | | N | Index_priv | enum('N','Y') | NO | | N | Alter_priv | enum('N','Y') | NO | | N | Create_tmp_table_priv | enum('N','Y') | NO | | N | Lock_tables_priv | enum('N','Y') | NO | | N | Create_view_priv | enum('N','Y') | NO | | N | Show_view_priv | enum('N','Y') | NO | | N | Create_routine_priv | enum('N','Y') | NO | | N | Alter_routine_priv | enum('N','Y') | NO | | N | Execute_priv | enum('N','Y') | NO | | N | Version 5.0.50-Win32 今試したけど、このVerも期待通りに動いた。 *_privの数が、4.0系で12個、5.0系で17個。多分4.1系、5.1系だとまた違うハズ・・。
433 名前:NAME IS NULL mailto:sage [2007/11/22(木) 13:50:12 ID:???] 『今日hogehogeしました。』 『hogehoge テスト』 『hogehogeをhogehogeするテスト』 『hogehogeをhogehogeしたいんです』 『今日はテストがありました。』 『テストをhogehogeするテスト』 『今日はhogehogeのテストをしました。』 のときの出力結果は?
434 名前:NAME IS NULL [2007/11/22(木) 13:51:29 ID:UyA449rO] >>433 その単語が多い順です 『hogehogeをhogehogeするテスト』 『テストをhogehogeするテスト』 『今日hogehogeしました。』 『hogehoge テスト』 『hogehogeをhogehogeしたいんです』 『今日はテストがありました。』 『今日はhogehogeのテストをしました。』 みたいな感じを希望します
435 名前:NAME IS NULL [2007/11/22(木) 16:20:19 ID:Npi9B+/0] MySQL5.0で以下のsqlでエラーがでてしまいます。 どこか間違っている書き方がありましたらご指摘ください。 $table = "mytable"; $sql = "update `{$table}` " . "set (`text1`, `text2`, `text3`) " . "values " . "(md5('{$d['pass'}'), '{$d['id']}', '{$d['name']}') " . "where id = 10;";
436 名前:NAME IS NULL mailto:sage [2007/11/22(木) 16:27:04 ID:???] スレが違う
437 名前:NAME IS NULL mailto:sage [2007/11/22(木) 16:29:47 ID:???] update table set text1=hoge1, text2=hoge2, text3=hoge3 where id=10; じゃないの?
438 名前:NAME IS NULL mailto:sage [2007/11/22(木) 16:36:26 ID:???] >>437 さんのやりかたで正常に動作できました。 updeteではvaluesは使えないみたいですね、残念な思いです。
439 名前:NAME IS NULL mailto:sage [2007/11/22(木) 17:19:37 ID:???] >>434 できない。
440 名前:NAME IS NULL mailto:sage [2007/11/22(木) 17:44:11 ID:???] 正規表現にしてマッチした回数でソートすれば出来るような気がするんだけど
441 名前:NAME IS NULL mailto:sage [2007/11/22(木) 18:11:40 ID:???] MySQLで正規表現使えたっけ?
442 名前:NAME IS NULL mailto:sage [2007/11/22(木) 18:37:22 ID:???] うん
443 名前:HXsVtIoZaClODEWe mailto:hello@gratz.com [2007/11/22(木) 19:36:13 ID:???] ftgmkr.cn classican mp3 downloads
444 名前:aZxcBftlZ mailto:nbp@bpn.net [2007/11/22(木) 22:51:19 ID:???] gkinyn.cn mp3 dmusic downloads ipod
445 名前:NAME IS NULL mailto:sage [2007/11/22(木) 23:00:35 ID:???] >>434 おとなしくSennaとか組み込むべき。
446 名前:NAME IS NULL [2007/11/23(金) 00:59:01 ID:OYGbXtrw] すみません、質問させてください not nullを設定してないカラムに値を指定せずinsert文を書いたんですが、登録されません。 insert into table (namae1, namae2) values(1,); *namae2が問題のカラム 上のような形です。 values(1,1); などとしたら正常に動くんですが、 値をいれずに登録するにはどうしたらいいですか? 自分でも調べたんですがどうもわからないのでよろしくお願いします
447 名前:NAME IS NULL mailto:sage [2007/11/23(金) 01:22:20 ID:???] insert into table (name1) values (1)
448 名前:NAME IS NULL [2007/11/23(金) 02:05:55 ID:OYGbXtrw] >>447 ありがとうございます やっぱりそういう風に値の入ってるものだけに絞ってインサートするしかないんでしょうか? そうだとすると各パラメータの値の有無ごとに振り分けが必要になって面倒な気がしますが…
449 名前:NAME IS NULL mailto:sage [2007/11/23(金) 03:15:05 ID:???] >>448 Insert into table (`namae1`) Valuse('1') Insert into table (`namae3`,`namae256`) Valuse('konyaga','YamaDa!!') これが>>446 とどうちがうか理解できなければ、Manualを熟読しませう。
450 名前:449 mailto:sage [2007/11/23(金) 03:16:38 ID:???] ごめ、アンカミス >>446 は>>447 の間違い
451 名前:449 mailto:sage [2007/11/23(金) 03:19:25 ID:???] さらにごめん。いっしょだた。う〜ん寝る
452 名前:NAME IS NULL mailto:sage [2007/11/23(金) 05:06:51 ID:???] >>449 はまだ回答はやいわ。中二病ってやつか? 質問の読解すらできてないじゃない
453 名前:NAME IS NULL mailto:sage [2007/11/23(金) 06:09:21 ID:???] 該当のカラムが null を許容すべきかどうかが重要 許容すべきならプログラムなりSQLなりで工夫する
454 名前:446 [2007/11/23(金) 06:16:11 ID:OYGbXtrw] あー、だめだ わからん、、 >>449-451 ありがとうございます しかし正直、混乱してきました やはりカラム名-その値のセットで登録しなきゃいけないんでしょうか? それだとフォームの必須項目以外の処理が面倒すぎるし、、 デフォルト値の 設定がおかしいのかなぁ どなたかお暇な方ご教授お願いします
455 名前:NAME IS NULL mailto:sage [2007/11/23(金) 06:22:45 ID:???] webフォームの入力処理はめんどうなんだよ
456 名前:NAME IS NULL mailto:sage [2007/11/23(金) 07:54:13 ID:???] insert into table values ('hoge1',null); でええやん
457 名前:YNGTpqCnKBzITK mailto:nbp@bpn.net [2007/11/23(金) 09:45:27 ID:???] ipmnew.cn mp3 xxx hardcore sample downloads
458 名前:NAME IS NULL mailto:sage [2007/11/23(金) 10:49:07 ID:???] あるテーブルの生徒の成績の○と×のデータがあるのですが、 その正解率を計算するのに一回のSQL文で書くことって可能でしょうか? 今は、where文で○のcountと全体のcountを取得するSQL文を2回発行して、 phpで、その○の数÷全体の数で正解率を算出しています。 1回で書く方法がございましたら、ご教授下さい。宜しくお願いします。
459 名前:NAME IS NULL mailto:sage [2007/11/23(金) 11:08:26 ID:???] >>458 select a.maru / (a.maru + b.peke) from (select count(*) as maru from table where result='○') a, (select count(*) as peke from table where result='×') b; でどうだ
460 名前:459 mailto:sage [2007/11/23(金) 11:13:11 ID:???] select a.maru / b.total from (select count(*) as maru from table where result='○') a, (select count(*) as total from table) b; の方がちょっと早いか
461 名前:NAME IS NULL mailto:sage [2007/11/23(金) 11:23:52 ID:???] >>459 >>460 SQL文って入れ子に出来るんですね。 こんなやり方初めて知りました。 どうもありがとうございました。
462 名前:tWZYSkVDUmb mailto:dialog@golaid.info [2007/11/23(金) 12:14:48 ID:???] itdvmb.cn mp3 player downloads
463 名前:XaMsLqbHC mailto:GoingOut@GoingOut.com [2007/11/23(金) 19:34:57 ID:???] jjajqy.cn/blue-diamond-ventures.htmlBlue diamond ventures</url> jjajqy.cn/why-are-uranus-and-neptune-blue-htm.html Why are uranus and neptune blue htm jjajqy.cn/blue-bay-getaway-hotel-cancun-mexico.html Blue bay getaway hotel cancun mexico jjajqy.cn/black-street-hookers-78-dvd.html Black street hookers 78 dvd <url>jjajqy.cn/blue-berry-lower-cholesterol-htm.html Blue berry lower cholesterol htm
464 名前:NAME IS NULL mailto:sage [2007/11/23(金) 22:37:48 ID:???] MySQLの4.1.15だけど、テーブル作成時にcheck制約って付けること出来ないんでしたっけ?
465 名前:NAME IS NULL mailto:sage [2007/11/23(金) 22:49:10 ID:???] ttp://dev.mysql.com/doc/refman/4.1/ja/create-table.html エラーにはならないけど機能してないっぽい。5.1でも未対応。
466 名前:NAME IS NULL mailto:sage [2007/11/23(金) 23:01:13 ID:???] >>465 即レス、thx。今日本屋で関連の本立ち読みしてアレ?って思ったんですよ。
467 名前:NAME IS NULL [2007/11/24(土) 00:20:43 ID:xMeIt7o3] バージョンごとのデータ形式の互換性ってどの程度保たれてるんですか? たとえば同じmyisamでも、 昔はコレーションとかなかったですが今はあります その拡張部分はどこを変えることで行われているのでしょう? MYI,MYDは同じで、frmの属性を増やしていくっていう感じでしょうか
468 名前:sWpPMfcqKrPzYgVZfT mailto:govnokia@govnokia.net [2007/11/24(土) 00:48:40 ID:???] ktmyve.cn/escort-monique-new-york.html Escort monique new york ktmyve.cn/laser-vaginal-rejuvenation-new-york.html Laser vaginal rejuvenation new york ktmyve.cn/fetish-restaurant-new-york.html Fetish restaurant new york ktmyve.cn/pda-cube-x-serial-rubik-pocket-pc.html Pda cube x serial rubik pocket pc ktmyve.cn/ear-piece-for-blackjack-pda.html Ear piece for blackjack pda
469 名前:UzCslGBvNBcBTMCPB mailto:amalive@cqiycu.cn [2007/11/24(土) 04:00:29 ID:???] cqiycu.cn/ legal mp3 download
470 名前:fFuIwXPUcQWmooCECS mailto:gangsta@bdzwbn.cn [2007/11/24(土) 09:31:45 ID:???] bdzwbn.cn/gangsta-mp3 gangsta mp3
471 名前:NAME IS NULL mailto:sage [2007/11/24(土) 10:00:31 ID:???] 0 rows affected, 1 warning って出るsqlがあるんですが、この時実際の warning メッセージはどうすれば見れますか?
472 名前:NAME IS NULL mailto:sage [2007/11/24(土) 10:33:37 ID:???] show warnings;
473 名前:ubjKyDJBaYuzCG mailto:mp3@bdzwbn.cn [2007/11/24(土) 13:28:33 ID:???] bdzwbn.cn/mp3 mp3
474 名前:qzYNJWeoGVesRNdpqI mailto:mp3@bdzwbn.cn [2007/11/24(土) 13:33:54 ID:???] bdzwbn.cn/mp3 mp3
475 名前:ubAepUFBYytERgcXh mailto:newmp3@bdzwbn.cn [2007/11/24(土) 16:19:41 ID:???] bdzwbn.cn/new-mp3 new mp3
476 名前:IIoSSgMbNe mailto:nightmp3@bdzwbn.cn [2007/11/24(土) 17:40:41 ID:???] bdzwbn.cn/night-mp3 night mp3
477 名前:RhgWRXNkjHdqHal mailto:nightmp3@bdzwbn.cn [2007/11/25(日) 00:47:09 ID:???] bfsnbw.cn/mp34 free memory
478 名前:NAME IS NULL mailto:sage [2007/11/25(日) 03:21:11 ID:???] なんでこのスレSPAMの餌食になってんだ?
479 名前:NAME IS NULL mailto:sage [2007/11/25(日) 07:43:03 ID:???] 俺の質問にまともに答えずに、茶化したから。
480 名前:NAME IS NULL mailto:sage [2007/11/25(日) 07:45:53 ID:???] なぜか、DB板の各スレが餌食になっているのだが。 >>479 俺が悪かった。もうやめてくれ。
481 名前:472 mailto:sage [2007/11/25(日) 07:56:53 ID:???] 俺ちゃんと答えたじゃないかああああ うわああああん
482 名前:NAME IS NULL mailto:sage [2007/11/25(日) 11:58:35 ID:???] >>467 そんな感じだったはず。
483 名前:NAME IS NULL [2007/11/25(日) 21:43:28 ID:yRCAathj] 文書内検索で、次のようなフォーム入力を受け付けるようにしたいと考えてます。 Foo or (Bar and Baz) Foo、もしくは、BarとBazを含む文書、と考えています。 LIKE検索するとして、こうした優先順をSQL文で表現できるでしょうか? 自分のスキルでは思いつかないので、まずFooとBar and Bazをそれぞれ検索して 検索プログラム側で結果をorで絞り込む、ということでとりあえず書いてるんですが これですと全体を2回以上検索することになるので・・・ 入力例は、例えば「ビデオデッキ」と「ビデオ・デッキ」を両方ヒットさせたいようなときに 「DVDプレーヤー or (ビデオ and デッキ)」のように受け付けたいと思っています
484 名前:NAME IS NULL mailto:sage [2007/11/25(日) 21:48:38 ID:???] >>480 どっかに穴が開いてるんだと思う
485 名前:NAME IS NULL mailto:sage [2007/11/25(日) 22:20:32 ID:???] >>483 その条件式のまま、whereにlikeで書けばいいんでない?
486 名前:NAME IS NULL mailto:sage [2007/11/26(月) 00:21:00 ID:???] >>485 ありがとうございます。 〜WHERE column_name LIKE '%DVDプレーヤー%' OR ('%ビデオ%' AND '%デッキ%') 〜 のように書いてみました。 不勉強なもので、このようなカッコを使った書き方ができるとは知りませんでした・・ 尚、マニュアル参照してみますm(_ _)m
487 名前:NAME IS NULL mailto:sage [2007/11/26(月) 00:35:34 ID:???] ビットテストとかは出来ますか?
488 名前:NAME IS NULL mailto:sage [2007/11/26(月) 01:22:20 ID:???] .cn/ をNGワードにすればいいよ
489 名前:NAME IS NULL mailto:sage [2007/11/26(月) 03:14:54 ID:???] >>487 これ? dev.mysql.com/doc/refman/5.1/ja/bit-functions.html
490 名前:NAME IS NULL mailto:sage [2007/11/26(月) 20:56:37 ID:???] MySQLの文字化け酷い・・・なにこれ
491 名前:446 mailto:sage [2007/11/26(月) 21:08:46 ID:???] >>455-456 ありがとう お礼遅れて申し訳ない どうにか解決しました サンキューです
492 名前:NAME IS NULL mailto:sage [2007/11/26(月) 23:47:26 ID:???] >>490 は文字コードを理解していないに違いない
493 名前:NAME IS NULL mailto:sage [2007/11/27(火) 00:47:50 ID:???] つきなみだけど 「文字化け」っていう言葉は本来はbit落ちとかで使うものであって エンコード間違いのときに使う言葉じゃないんだよね
494 名前:NAME IS NULL mailto:sage [2007/11/27(火) 10:49:56 ID:???] なんとか金払わずGPL回避して、libmysqlを使う方法はありませんか?
495 名前:NAME IS NULL mailto:sage [2007/11/27(火) 11:04:01 ID:???] >>494 MySQLをやめて、俺SQLを作ればいいのでは?
496 名前:NAME IS NULL [2007/11/27(火) 15:45:19 ID:HAXaaf9d] MySQL 5.0.42を使用しているのですが、 以下のようなテーブルを作成し、レコードを登録しておいた場合に、 Where条件として、PRIMARY KEYの3フィールド(field3, field4, field6)をAND条件で指定した時、 SELECTは問題なく行えるのですが、 UPDATEとDELETEが、レコードが存在するにも関わらず、 「Rows matched: 0」と出てしまい、SQLの結果が反映されないのですが、原因とか分かりますでしょうか? CREATE TABLE table1 ( field1 date, field2 varchar(3), field3 varchar(11) NOT NULL, field4 varchar(11) NOT NULL, field5 bigint UNSIGNED, field6 char(1) NOT NULL, CONSTRAINT pk_table1 PRIMARY KEY (field3, field4, field6)) TYPE=InnoDB;
497 名前:NAME IS NULL mailto:sage [2007/11/27(火) 16:42:30 ID:???] >>494 同じプロトコルで同じ内容をしゃべる/きくようにすれば医院じゃ内科医?
498 名前:NAME IS NULL mailto:sage [2007/11/27(火) 16:45:13 ID:???] >>494 C++ <-> Python <-> MySQLdb <-> MySQL こんな wrapper を書いてみたり
499 名前:NAME IS NULL mailto:sage [2007/11/27(火) 16:52:17 ID:???] >>496 | Warning | 1287 | 'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine' instead | こんなん出たけど
500 名前:NAME IS NULL mailto:sage [2007/11/27(火) 17:00:25 ID:???] mysql> select * from tb1 where f3 = '12345678901'; +------------+------+-------------+-------------+----------------------+----+ | f1 | f2 | f3 | f4 | f5 | f6 | +------------+------+-------------+-------------+----------------------+----+ | 2007-11-27 | 234 | 12345678901 | 01234567890 | 12345678901234567890 | a | | 2007-11-27 | 234 | 12345678901 | 01234567890 | 12345678901234567890 | b | | 2007-11-27 | 234 | 12345678901 | 01234567890 | 12345678901234567890 | c | | 2007-11-27 | 234 | 12345678901 | 11234567890 | 12345678901234567890 | a | | 2007-11-27 | 234 | 12345678901 | 21234567890 | 12345678901234567890 | a | +------------+------+-------------+-------------+----------------------+----+ 5 rows in set (0.00 sec) mysql> update tb1 set f6 ='x' where f3 = '12345678901' and f4 = '01234567890' and f6 = 'a'; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> delete from tb1 where f3 = '12345678901' and f4 = '01234567890' and f6 = 'x'; Query OK, 1 row affected (0.05 sec)
501 名前:483 mailto:sage [2007/11/27(火) 18:59:37 ID:???] すみません、先日質問させてもらった者です。WHERE節で WHERE column_name LIKE '%DVDプレーヤー%' OR ('%ビデオ%' AND '%デッキ%') のように式を書いて、エラーもなく動作したのですが、 その後、この記法についてマニュアルで見つけることができません・・・ ここにそれらしき記法を見つけたんですが(WHERE節の最適化の例のひとつとして) ttp://dev.mysql.com/doc/refman/5.1/ja/where-optimizations.html また、手探りで式を変えながら試してみると、 上記の例の場合も、エラーは出ないものの、最初のDVDプレーヤーしか対象になっていないようなんです。 該当のマニュアルページを教えていただけるとありがたいのですが・・
502 名前:NAME IS NULL mailto:sage [2007/11/27(火) 19:50:41 ID:???] 文字コードがあってないんジャマイカ
503 名前:NAME IS NULL mailto:sage [2007/11/27(火) 19:51:55 ID:???] 予想はしていたが これはひどいw WHERE column_name LIKE '%DVDプレーヤー%' OR ((column_name LIKE '%ビデオ%') AND (column_name LIKE '%デッキ%'))
504 名前:NAME IS NULL mailto:sage [2007/11/27(火) 20:12:28 ID:???] >>501 ttp://dev.mysql.com/doc/refman/5.1/ja/string-comparison-functions.html like は演算子にしか見えないけど、なんで関数になってるんだろ
505 名前:NAME IS NULL mailto:sage [2007/11/27(火) 20:25:15 ID:???] >>500 なんでだろう・・・・自分のだとこうなる。 mysql> desc table1; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | field1 | date | YES | | NULL | | | field2 | varchar(3) | YES | | NULL | | | field3 | varchar(11) | NO | PRI | | | | field4 | varchar(11) | NO | PRI | | | | field5 | bigint(20) unsigned | YES | | NULL | | | field6 | char(1) | NO | PRI | | | +--------+---------------------+------+-----+---------+-------+ 6 rows in set (0.02 sec) mysql> select * from table1 where field3 = '00000000002' and field4 = '0' and field6 = 'N'; +------------+--------+-------------+--------+--------+--------+ | field1 | field2 | field3 | field4 | field5 | field6 | +------------+--------+-------------+--------+--------+--------+ | 2007-11-27 | aaa | 00000000002 | 0 | 100 | N | +------------+--------+-------------+--------+--------+--------+ 1 row in set (0.00 sec) mysql> update table1 set field2 = 'bbb' where field3 = '00000000002' and field4 = '0' and field6 = 'N'; Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0 mysql> delete from table1 where field3 = '00000000002' and field4 = '0' and field6 = 'N'; Query OK, 0 rows affected (0.00 sec)
506 名前:483 mailto:sage [2007/11/27(火) 20:48:24 ID:???] >>502-504 ありがとうございます。 並列のLIKE検索式に対してカッコを使用するのですね。あうっ・・ 今度は結果も確認できました。 案内いただいたページも参考にさせていただきますm(_ _)m
507 名前:NAME IS NULL mailto:sega [2007/11/27(火) 21:04:52 ID:???] >>494 libmysqlでも何でも使ってDBにアクセスする「サーバ」を作れ。 それに接続するクライアントとしてお前のプログラムを作ればいい。 ソケット越しの連携は何をどうやってもGPLとは関係が無いからな。 そのサーバは公開義務があるけど、別にただのラッパだから 公開しても痛くも痒くもないだろ
508 名前:NAME IS NULL mailto:sage [2007/11/27(火) 23:17:31 ID:???] >>505 mysql> desc tb1; +-------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+-------+ | f1 | date | YES | | NULL | | | f2 | varchar(3) | YES | | NULL | | | f3 | varchar(11) | NO | PRI | | | | f4 | varchar(11) | NO | PRI | | | | f5 | bigint(20) unsigned | YES | | NULL | | | f6 | char(1) | NO | PRI | | | +-------+---------------------+------+-----+---------+-------+ 6 rows in set (0.55 sec)
509 名前:NAME IS NULL mailto:sage [2007/11/28(水) 08:55:01 ID:???] >>505 bugs.mysql.com/bug.php?id=28878 これっぽい。
510 名前:NAME IS NULL mailto:sage [2007/11/28(水) 21:34:21 ID:???] パフォーマンスを向上させるために、 複数のINSERT文を一つのマルチプルINSERT文に書き換える予定です。 ただ、SQL文が非常に長くなってしまいますが、 MYSQL5.0で、一つのSQL文の長さの制限ってどれ位でしょうか? お願いします。
511 名前:NAME IS NULL [2007/11/28(水) 22:33:22 ID:fitDzhSE] SQLの長さに制限なんてあるの?
512 名前:NAME IS NULL mailto:sage [2007/11/29(木) 00:06:24 ID:???] とりあえずmax_allowed_packetで制限されてるみたいだよ。 max_allowed_packetのデフォルトは1MB。 $ ls -l long.sql -rw-rw-r-- 1 xxxxx xxxxx 16921095 11月 29 00:04 long.sql $ head long.sql insert into ltest values (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), (default), $ mysql test < long.sql ERROR 1153 (08S01) at line 1: Got a packet bigger than 'max_allowed_packet' bytes
513 名前:NAME IS NULL mailto:sage [2007/11/29(木) 00:14:27 ID:???] 1MBギリギリで実験。 $ ls -l long.sql -rw-rw-r-- 1 taira taira 1048546 11月 29 00:12 long.sql $ mysql test Server version: 5.0.46-enterprise MySQL Enterprise Server (Commercial) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show variables like '%allow%'; +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+ 1 row in set (0.00 sec) mysql> source long.sql Query OK, 95320 rows affected (1.53 sec) Records: 95320 Duplicates: 0 Warnings: 0 大丈夫。
514 名前:NAME IS NULL mailto:sage [2007/11/29(木) 13:13:13 ID:???] >>512 >>513 わざわざ、検証までして下さってお忙しい中、どうもありがとうございました。 max_allowed_packetの設定値だったんですね。ちなみに、私が使っているxreaでは8MBに設定されていました。 とても参考になりました。 どうもどうも、ありがとうございました。
515 名前:NAME IS NULL mailto:sage [2007/11/29(木) 21:45:50 ID:???] SELECT * FROM t INNER JOIN a ON t.aid = a.aid INNER JOIN b ON t.bid = b.bid 3つのテーブルを結合しているのですが、USINGを使って書き換え方が分かりません、、 よろしくお願いいたします
516 名前:NAME IS NULL mailto:sage [2007/11/29(木) 22:01:52 ID:???] >>515 何がしたいのかもう少しkwsk
517 名前:515です mailto:sage [2007/11/29(木) 22:18:52 ID:???] どうもすみません テーブル2つ(t,a)だったら SELECT * FROM t INNER JOIN a USING (aid) のように書けたのですが、3つになったとき SELECT * FROM t INNER JOIN a USING (aid) INNER JOIN b USING (bid) はエラーになります USING句を知ってシンプルに書けるなあと思い使ってみようと思いました
518 名前:NAME IS NULL mailto:sage [2007/11/29(木) 22:23:14 ID:???] select t.* from t, a where t.aid=a.aid; select t.* from t, a, b where t.aid=a.aid and a.aid=b.aid; じゃダメなの?
519 名前:NAME IS NULL mailto:sage [2007/11/30(金) 00:35:50 ID:???] テーブルaにbidという列があるとダメみたい。 mysql> desc t1; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | col1 | int(11) | YES | | NULL | | | col2 | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> desc t2; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | col1 | int(11) | YES | | NULL | | | col3 | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> desc t3; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | col1 | int(11) | YES | | NULL | | | col2 | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> select t1.col1 from t1 inner join t2 using (col1) inner join t3 using (co l2); +------+ | col1 | +------+ | 1 | | 2 | +------+ 2 rows in set (0.00 sec) t2にcol2列が無い場合は、こんなかんじでちゃんと動く。 でもONで書くのが自然だと思うぞー
520 名前:NAME IS NULL mailto:sage [2007/11/30(金) 04:06:08 ID:???] MySQLで、 INSERT INTO `hoge_t` (`test_c`) VALUES (' '); みたいなSQL文を実行した場合、 `test_c` に " " (半角スペース1つ) では無く、"" (文字列無し) が入ってしまいます。 これは何故でしょうか? また、解決策はあるのでしょうか? 教えて下さい。
521 名前:NAME IS NULL mailto:sage [2007/11/30(金) 11:34:40 ID:???] dev.mysql.com/doc/refman/4.1/ja/char.html dev.mysql.com/doc/refman/5.1/ja/char.html 5.1でvarcharを使えばいいんじゃね? あるいはtinytextでも使うとか。
522 名前:NAME IS NULL mailto:sage [2007/11/30(金) 11:36:39 ID:???] where文を作成する時に、INとORだったら、どちらが速いでしょうか? WHERE FIELD IN ('a', 'b', 'c') WHERE FIELD A OR FIELD B OR FIELD C FIELDには、indexを貼っています。
523 名前:NAME IS NULL mailto:sage [2007/11/30(金) 11:38:16 ID:???] >>522 ためしに、何回かクライアントで実行してみましたが、 実行するタイミングによって処理速度がちがって、 有意な差が見られないような気がしました。
524 名前:NAME IS NULL mailto:sage [2007/11/30(金) 13:09:58 ID:???] explain取ってみてプランが同じなら同じってことでいいと思う。 こっちで試した限りは同じだった。
525 名前:私のSQL [2007/12/01(土) 12:27:11 ID:HP5Wtz1B] 初めまして。 MySQLでUpdateをしたときに思うように動作しないので質問させていただきます。 profileテーブルにsexという項目をvarchar(2)で定義しています。 UPDATE profile SET sex="きんさんぎんさん" where user_id = "00000002" というSQLを流すと”きん”という結果がupdateされます。 通常こういった場合はエラーにならないのでしょうか。 なにか設定の問題なのでしょうか。
526 名前:NAME IS NULL mailto:sage [2007/12/01(土) 23:04:56 ID:???] mysql> create table ctest (c1 varchar(2)); Query OK, 0 rows affected (0.06 sec) mysql> insert into ctest values ('abc'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> show warnings; +---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1265 | Data truncated for column 'c1' at row 1 | +---------+------+-----------------------------------------+ 1 row in set (0.00 sec) mysql> set @@sql_mode = 'strict_all_tables'; Query OK, 0 rows affected (0.00 sec) mysql> insert into ctest values ('def'); ERROR 1406 (22001): Data too long for column 'c1' at row 1 mysql> select * from ctest; +------+ | c1 | +------+ | ab | +------+ 1 row in set (0.00 sec) mysql> update ctest set c1 = 'abc' where c1 = 'ab'; ERROR 1406 (22001): Data too long for column 'c1' at row 1
527 名前:NAME IS NULL mailto:sage [2007/12/02(日) 11:16:23 ID:???] >>525 strictモードで使えば? dev.mysql.com/doc/refman/5.1/ja/char.html
528 名前:NAME IS NULL mailto:sage [2007/12/02(日) 12:29:29 ID:???] 質問者の使用バージョンも判らんのに。
529 名前:NAME IS NULL mailto:sage [2007/12/02(日) 15:48:26 ID:???] んなもん、書かない方が悪い
530 名前:NAME IS NULL [2007/12/03(月) 23:59:40 ID:PJiuXVSt] answerカラムの値が「赤」「赤,青」と、2件のレコードがあるとします。 SELECT count(answer) AS cnt FROM faq WHERE answer LIKE '赤' GROUP BY answer とした時、cntは1にしかなりません。 1つのカラムに複数の値が入っているから、集計出来ていないのだと思いますが どういうSQLを書けばいいのでしょうか?
531 名前:NAME IS NULL mailto:sage [2007/12/04(火) 00:55:32 ID:???] 何がしたいのかはっきりせんけど ・LIKE '%赤%' ・GROUP BY を削除
532 名前:NAME IS NULL mailto:sage [2007/12/04(火) 01:39:25 ID:???] >>531 %は抜けていました。すみません。 あと、GROUP BYはいらなかったんですね。 これを削除したら希望通り、件数が表示されました。 ありがとうございました。
533 名前:NAME IS NULL [2007/12/04(火) 09:35:19 ID:J4jZq34H] MySQL Server 5.0 をインストールしたのですが環境設定の、 Install As Windows Servicd Service Name: Include Bin Directory in Windows PATH 3つのチェック項目が現れる部分で一番下の、 Include Bin Directory in Windows PATH 以外の2つの項目が選択できません。 その後のパスワード設定は画面すら飛ばされてしまいます。 OSはWindowsMEでの起動を試みています。 どなたかMEでも起動する方法を知りませんか? 何とかMEで起動させたいのですが。
534 名前:NAME IS NULL mailto:sage [2007/12/04(火) 09:53:01 ID:???] ここよめ dev.mysql.com/doc/refman/5.0/en/windows-installation.html Windows 95/98/ME and versions of Windows older than these are no longer supported. Windows 95/98/MEおよびそれより古いバージョンの Windowsはもうサポートされていません。
535 名前:NAME IS NULL mailto:sage [2007/12/04(火) 11:43:29 ID:???] >>533 非NT系Windowsにはサービスって概念がないから それ関係の項目が表示されないだけだと思う インストール開始時のOSチェックで蹴られないなら動く可能性はある インストール終了したら手動でMySQLを起動/終了する方法を試してみて ttp://dev.mysql.com/doc/refman/5.0/en/windows-start-command-line.html まあ本当に動かないかもしれないので動いたら儲けものぐらいで
536 名前:NAME IS NULL mailto:sage [2007/12/04(火) 23:42:28 ID:???] MEとか久々に見たな。
537 名前:533 mailto:sage [2007/12/05(水) 02:46:04 ID:???] あれから調べましたが、コマンドラインが起動してすぐに強制終了するので、 何かをするとか無理ですかね? やっぱりパスワード設定出来ないと駄目なのかなぁ…
538 名前:NAME IS NULL mailto:sage [2007/12/05(水) 06:59:54 ID:???] > コマンドラインが起動してすぐに強制終了するので 本当に強制終了?なんらかのプログラム(mysql.exeとか)を起動後 コマンドプロンプトが一瞬だけ表示されてすぐ消えるとかじゃなくて? 文面からしてコマンドライン自体よくわかってないように見えるけど
539 名前:NAME IS NULL mailto:sage [2007/12/05(水) 07:11:16 ID:???] 素直に.4.1以前を使った方がいいと思う(本に添付されているやつとか
540 名前:537 mailto:sage [2007/12/05(水) 12:34:10 ID:???] >>538 それです。一瞬表示されて消えてしまいます。 お察しの通りSQLの勉強始めたばかりなのでよく分かってません… >>539 4.1以前ならMEでも動くんですか? それならそちらを探し出して使います。
541 名前:NAME IS NULL mailto:sage [2007/12/05(水) 12:58:02 ID:???] だからマニュアル嫁 dev.mysql.com/doc/refman/4.1/ja/win95-start.html ここにある dev.mysql.com/downloads/mysql/4.1.html
542 名前:537 mailto:sage [2007/12/05(水) 13:40:38 ID:???] >>541 超助かります。ありがとうございました。
543 名前:NAME IS NULL mailto:sage [2007/12/05(水) 20:10:40 ID:???] mysql サーバーを外付けhddなどに入れて macとwindowsで共有することは出来るでしょうか? 2台のネットワークにつながっていないパソコンにhddをつないで mysqlを持ち運ぼうとおもっています 一つのデータベースを2種類のサーバをつかって共有するという感じです 実行は別々の時間です windowsだけならば何でもできるけど macなんで良い方法ないですか?
544 名前:NAME IS NULL mailto:sage [2007/12/06(木) 09:29:06 ID:???] >>543 DBをFATに作れば可能
545 名前:NAME IS NULL [2007/12/08(土) 22:42:32 ID:AP+yiBIl] すみません、お聞きします 今、スケジューラみたいのものを作っていて、 month=12&day=9 のような形でサーバに送って、それぞれまともにmonthカラムとdayカラムに 突っ込んでいます。 これを、date型に成形して、mysqlの方でもその形で1カラムにまとめたとしたら、 運営上どのような利点があるんでしょうか? 厨質問かも知れないですが、回答お願いします 検索などの速度が向上するとかあるんでしょうか、、
546 名前:NAME IS NULL mailto:sage [2007/12/08(土) 23:33:53 ID:???] 日付型にしとくと、日付の演算が可能になるでしょ 月と日が別カラムだと、月をまたぐ計算が面倒
547 名前:545 mailto:sage [2007/12/09(日) 00:30:25 ID:???] ありがとうございます そういう効果があるんですね 日付型の特長について、調べてみます!
548 名前:NAME IS NULL mailto:sage [2007/12/09(日) 18:05:35 ID:???] MySQLのデータを、一般公開できるくらいのデザインで 簡単に整理して表示するWebスクリプトはありますか? phpMyAdminなどの管理用のユーティリティソフトは導入していますが、 ・検索や優先順位付きのソートだけでよい ・ユーティリティだけにデザインが難しい という問題があります。 スクリプトをいちから組むのはめんどくさくて…
549 名前:NAME IS NULL mailto:sage [2007/12/09(日) 18:20:12 ID:???] webprog板池
550 名前:NAME IS NULL mailto:sage [2007/12/09(日) 18:48:03 ID:???] >>549 了解です。スレ汚しすみませんでした。
551 名前:NAME IS NULL mailto:sage [2007/12/11(火) 00:11:12 ID:???] sage
552 名前:NAME IS NULL mailto:age [2007/12/11(火) 15:07:28 ID:???] innoDBにてリレーションを組んだテーブルがあるんですが、 片一方のテーブルのデータを削除すると "foreign key constraint fails"が出ます。 ondelete cascadeをせずに、片一方のテーブルのデータを削除する方法はありますでしょうか。
553 名前:NAME IS NULL mailto:sage [2007/12/11(火) 19:00:59 ID:???] 何のための外部キーなのだ
554 名前:NAME IS NULL mailto:sage [2007/12/12(水) 00:13:05 ID:???] >>552 set foreign_key_checks=0; おすすめはしない。
555 名前:NAME IS NULL mailto:sage [2007/12/12(水) 02:17:14 ID:???] 夜だからかちょっと混乱してるかもです… ショッピングカートのデータベースです。 user,shopcartというテーブルがあり、それぞれ -user userid int(11) name varchar(64) -shopcart userid int(11) goodsid int(11) price int(11) accounted int(1) #0:未清算,1:清算済み となっています。(実際はもっと複雑で違った用途ですが…) このとき、 未清算(accounted=0)で、価格が10,000円以上(price>10000)の商品が 買い物かごに入っているユーザの名前を検索するのは どういったSQL文を書けばいいのでしょうか。
556 名前:NAME IS NULL mailto:sage [2007/12/12(水) 02:36:02 ID:???] 違った…これじゃすごい単純だ SELECT name from INNER JOIN shopcart ON user.userid = shopcart.userid WHERE shopcart.price>10000 & shopcart.accounted = 0 でいけたわ 必要なのは 「未清算(accounted=0)で、価格が10,000円以上(price>10000)の商品が 買い物かごに入っている」 かつ 「清算済み(accounted=1)で、価格が10,000円以上(price>10000)の商品が 買い物かごに入っている」 ユーザの名前を検索するSQL文でした お騒がせしてます
557 名前:NAME IS NULL mailto:sage [2007/12/12(水) 03:14:43 ID:???] >>556 まだおかしい 条件をよく見直すよろし
558 名前:NAME IS NULL mailto:sage [2007/12/12(水) 03:31:25 ID:???] priceは除いても必要な構文は同じなので除外します。 日本語で言うと 「未清算の商品と清算済みの商品がそれぞれ1点以上カートに入っているユーザの名前」となります つまりまとめてみると 『shopcartに userid=x AND accounted=1 なレコードがあり、かつ shopcartに userid=x AND accounted=0 なレコードがある』 という条件を満たすuserid=xに対応するnameを求める ということです。 ん?おかしい? GROUP BYでもいける気もする
559 名前:NAME IS NULL mailto:sage [2007/12/12(水) 03:38:11 ID:???] これでどうか select u.name from (select distinct userid from shopcart where accounted=0 and price>=10000) a, (select distinct userid from shopcart where accounted=1 and price>=10000) b, user u where a.userid=b.userid and a.userid=u.userid;
560 名前:NAME IS NULL mailto:sage [2007/12/12(水) 03:40:05 ID:???] >>559 みゃー サブクエリ(?)でしたか 未知の領域ですががんばって勉強します ありがとうございました
561 名前:NAME IS NULL mailto:sage [2007/12/12(水) 04:00:45 ID:???] having を使ってうまいこと書けないかと思ったが 眠いのでネルス
562 名前:NAME IS NULL [2007/12/12(水) 21:07:36 ID:5IOTZHnS] mysqlの管理用にphpMyadminを触っています。 インストールの過程で要編集とあるconfig.inc.phpの項目が自分のpmaの バージョンでは存在しません 自分のバージョンは2.11.3で、存在しない項目は以下のとおりです $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = ''; $cfg['PmaAbsoluteUri'] = ''; どうしたらいいでしょう? www.shiftweb.net/material/phpmyadmin/phpmyadmin.html を参考に作業してます ここで質問していいのか不安でしたがお尋ねしました お願いします
563 名前:NAME IS NULL mailto:sage [2007/12/12(水) 21:41:40 ID:???] MySQLのばーじょn
564 名前:NAME IS NULL mailto:sage [2007/12/12(水) 23:08:20 ID:???] Mysql administratorでUTF-8で保存した日本語が文字化けるんだけど、対応してない? MySQLは5です。
565 名前:NAME IS NULL mailto:sage [2007/12/12(水) 23:18:42 ID:???] >>562 そのページは phpMyAdmin 2.5.6 向けに書かれているみたいだから 書かれている通りに作業を進めていってもうまくいかないと思うよ。 (認証メソッドもクッキー認証のままだろうし) 面倒くさいかもしれないけど、設定ファイルに書かれている項目を 一つひとつ理解しながら進めるのがいいと思う。 あるいは最新版にも使えそうな別の解説ページを探すとか。
566 名前:NAME IS NULL mailto:sage [2007/12/12(水) 23:45:56 ID:???] >>565 そうみたいですね 2.5.6を落として入れてみたんですが、それも上手くいきませんでした。 実は壊れたマシンの中じゃ動いてたんだけど、こういうのって 上手く動作したらすぐにそのバージョンや手順をメモっておくべきなんでしょうね 失敗したなぁ;; ありがとうございました
567 名前:NAME IS NULL mailto:sage [2007/12/13(木) 01:16:04 ID:???] あとそのときのバージョンのインストールパッケージ一式残しておくこと いつまでもダウンロードできるとは限らない
568 名前:NAME IS NULL mailto:sage [2007/12/13(木) 10:31:56 ID:???] CPUの交換を行って、CPUの性能が上がったのに データアクセスが遅くなりました。 CPUを交換したら、Mysqlの再インストールが必要な場合があるんでしょうか?
569 名前:NAME IS NULL mailto:sage [2007/12/13(木) 13:47:58 ID:???] >>568 おいおい、当たり前でしょ。システムの主要部分の構成を変えているのに、 そのままで運用する気かよ。
570 名前:NAME IS NULL mailto:sage [2007/12/13(木) 15:39:20 ID:???] >>569 返答ありがとうございます。 やっぱりMysqlをインストールする時にそのマシンの 構成によって何かしらの変化があるって事なんですね? 再インストールすれば大丈夫でしょうか? 素人ですいません。。。
571 名前:NAME IS NULL mailto:sage [2007/12/13(木) 15:42:27 ID:???] バイナリの再インストールなら変わらないんじゃないの?
572 名前:NAME IS NULL mailto:sage [2007/12/13(木) 18:03:30 ID:???] とりあえず、 ttp://ossipedia.ipa.go.jp/capacity/EV0604170061/
573 名前:NAME IS NULL mailto:sage [2007/12/13(木) 18:26:59 ID:???] MySQL5.0.30未満+InnoDBの環境だと、 CPUのコア数増やすと返って遅くなる場合があるよ