のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,760人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレMySQL 総合 Part12

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    1 : だよもん!!! - 2007/09/23(日) 10:57:29 ID:RN+MewUh (+123,-30,-139)
    快速 RDBMS、MySQL の総合スレです。
    前スレ[MySQL 総合 Part11]http://pc11.2ch.net/test/read.cgi/db/1178154390/
    [関連スレと過去ログ]
    http://find.2ch.net/index.php?STR=MySQL
    http://makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on

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

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

    ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。
    http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
    MyNAでの「心得の条」
    http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0

    ・関連ツール及びユーティリティ
    ・関連書籍
    >>2

    2 : NAME IS - 2007/09/23(日) 10:58:56 ID:??? (-9,-30,-198)
    【関連ツール及びユーティリティ】

    [phpMyAdmin]http://www.phpmyadmin.net/
    [phpMyBackupPro]http://www.phpmybackuppro.net/
    [MySQLCC]http://www.mysql.com/products/mysqlcc/
    [MySQL-Front]http://www.mysqlfront.de/
    [mytop]http://jeremy.zawodny.com/mysql/mytop/
    [Common SQL Environment]http://www.hi-ho.ne.jp/tsumiki/cse_1.html

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

    http://dev.mysql.com/downloads/gui-tools/5.0.html#Workbench
    ・MySQL Workbench

    【関連書籍】

    [MySQL Books]
    http://dev.mysql.com/books/
    http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-jp&fqp=keywords%01MySQL
    http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-us&fqp=keywords%01MySQL

    2ch風偉人伝 AA はこちら
    http://www.aadayo.com/aa/02_13.html
    4 : NAME IS - 2007/09/24(月) 22:06:40 ID:??? (-27,-30,-78)
    更新データを蓄えるための作業用のテーブルを作ってよければ、こんな感じで。

    update test1
    set col2 = (select test2.col2 from test2 where test1.col1 = test2.col1)
    where col1 in (select col1 from test2);

    普通はこんなことしないと思うけど…
    6 : NAME IS - 2007/09/25(火) 04:34:44 ID:??? (-27,-30,-252)
    UPDATEはB-TREE索引をたどって該当行をつかむ→書き換える、
    って流れだから、もし1つのSQLで複数まとめて書く文法があったとしても
    内部動作的はこれを1回ずつ繰り返すしかない。
    だから効率的にはならないんだよ。
    INSERTは表の末尾に一度に書き込めばいいから効率的にできるけどね。

    というわけでUPDATE4回投げましょう。

    同じUPDATE文でパラメータが違うだけなら
    PreparedStatement(JDBCの場合)をつかってSQLの解析コストを減らしましょう。

    あとは、4回というのが確定ならそのための専用のストアドプロシージャを
    書けばクライアント⇔サーバ間の通信量とかは減らせるね。
    (ストアドの中では結局UPDATEを4回やるわけだけど)
    8 : NAME IS - 2007/09/26(水) 00:29:32 ID:??? (+26,+28,-3)
    おまえら、まだ前スレが残っていますよ。
    9 : NAME IS - 2007/09/26(水) 08:02:13 ID:??? (+18,+25,-16)
    ほっとけば落ちるから問題なし
    10 : NAME IS - 2007/09/28(金) 04:44:53 ID:e5bj6BJY (-1,+13,-1)
    あげ
    12 : NAME IS - 2007/10/01(月) 01:08:52 ID:k3mU4g8h (+0,+0,+0)
    質問させて下さい。
    以下のようなテーブルがあります。(他の情報は省略してます。)
    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 - 2007/10/01(月) 01:37:19 ID:??? (-27,-30,-33)
    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 - 2007/10/01(月) 07:09:32 ID:??? (-14,-17,-6)
    TableAの設計が間違ってると思うのは漏れだけ?
    15 : NAME IS - 2007/10/01(月) 09:30:42 ID:??? (+26,+29,-5)
    >>14
    おばあちゃんが言っていた
    なんでも正規化すればいいわけじゃない ってな
    16 : NAME IS - 2007/10/01(月) 10:48:20 ID:??? (-28,-26,-5)
    以下のようなテーブルがあります。(他の情報は省略してます。)
    17 : NAME IS - 2007/10/01(月) 20:14:38 ID:??? (+16,+24,-1)
    馬鹿には見えないテーブルか
    18 : NAME IS - 2007/10/01(月) 21:59:42 ID:??? (+8,+8,+0)
    >>17
    裏2chじゃないの?
    20 : NAME IS - 2007/10/03(水) 16:09:54 ID:??? (+29,+29,-3)
    >18
    鮫島に関する投稿は消されるんだよ素人
    22 : NAME IS - 2007/10/03(水) 19:28:21 ID:??? (-27,-30,-102)
    掲示板に3分以内に投稿されたレスの数を取得するSQL文を書こうと思っています。

    http://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文で正しいかどうか、間違っていればどこを修正すれば良いのかを、ご教示お願いします。
    24 : NAME IS - 2007/10/04(木) 21:22:46 ID:??? (+32,+29,-18)
    俺にはweb板が正しくここが板違いにみえるが。。。
    26 : NAME IS - 2007/10/04(木) 23:58:36 ID:??? (+28,+29,-84)
    PHPスレで拒否られてるんだよ、>>23は。
    PHPスレでDBの作りの質問をし、MySQLスレでWEBセッション管理の質問
    も追加してくれば、どちらでも違和感感じる罠。
    PHPとMySQL固有の話じゃ無いんだから、もっと一般的な話題のスレで
    聞くべき。
    で、要求されるセキュリティのレベルが分からない以上、お好きなように
    としか言いようが無い。
    27 : NAME IS - 2007/10/05(金) 00:00:10 ID:??? (+31,+29,-6)
    >>26
    一度や二度のアタックであきらめるような恋なら最初からするな。
    28 : NAME IS - 2007/10/05(金) 00:04:46 ID:??? (+12,+24,-1)
    はあ?
    29 : NAME IS - 2007/10/05(金) 00:39:42 ID:??? (+33,+30,-66)
    規模にもよるけど悩むぐらいなら作れって
    あ、ねぇきいてきいていますっごいいっぱいうんこでてるよ
    すっごいいっぱい

       うんこが


      でてるんだよ
       俺の体内しか知らなかったうんこたちが
     噴流となって体外へと

        このタイムスタンプが俺とうんこたちとの生きた証、メモリー

    トイレからカキコ
    32 : 30 - 2007/10/05(金) 11:43:36 ID:+u0dyj/F (-4,+29,-2)
    >31
    ありがとうございます。
    まじっすか!?
    力技しかないのか~。
    34 : 30 - 2007/10/05(金) 14:10:13 ID:+u0dyj/F (+0,+29,+0)
    おぅおぅ!感動っす♪
    ありがとうございました。
    37 : NAME IS - 2007/10/06(土) 05:59:29 ID:??? (+18,+30,+0)
    41 : 38 - 2007/10/06(土) 12:06:44 ID:??? (-3,+2,-9)
    >>40
    ありがとうございます。
    ですが、それだとcolumnがNULLのものは、纏める纏めない関係無しに
    全て表示されなくなってしまうのですが。。
    42 : NAME IS - 2007/10/06(土) 12:11:34 ID:??? (+27,+29,-45)
    mysqldumpでDBのフルバックアップを二回取ったんですが、
    一回目取った分と二回目に取った分の差分を埋めることってできませんかね?
    43 : NAME IS - 2007/10/06(土) 12:14:04 ID:??? (-21,-30,-29)
    これでどう

    select ... from ... where column is not null group by column
    union all
    select ... from ... where column is null;
    44 : 38 - 2007/10/06(土) 12:36:43 ID:??? (+25,+29,-41)
    >>43
    ありがとうございます。
    うーん、それしかないですかね。。二つクエリ発行するのは負荷の都合から避けたいのですが。
    45 : NAME IS - 2007/10/06(土) 15:30:16 ID:??? (+32,+29,-2)
    >>24-26
    ごめんよ 自分でどうにかしてみるよ
    46 : NAME IS - 2007/10/06(土) 15:37:05 ID:??? (-27,-30,-159)
    じゃあ
    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 - 2007/10/06(土) 20:23:41 ID:??? (+17,+24,-1)
    ワロス
    3から始まらないのも謎...
    48 : NAME IS - 2007/10/07(日) 09:03:47 ID:QwQK+lic (+0,+0,+0)
    A,B,Cというカラムがありまして、
    A,Bの項目が重複しているレコードを全て取得したいのですが、どのようなSQLを発行すれば宜しいでしょうか?

    A,B,C
    "男","東京","新宿"
    "男","東京","池袋"
    "男","東京","渋谷"
    "女","神奈川","横浜"
    "女","東京","新宿"

    ↓↓↓↓↓↓↓↓↓↓↓↓(■"男","東京"が重複しているレコードを取得したいです)

    "男","東京","新宿"
    "男","東京","池袋"
    "男","東京","渋谷"

    A項目B項目とも内容が不定なので、WHERE文が作れなくて挫折してしましました。
    宜しくお願いします。
    49 : NAME IS - 2007/10/07(日) 09:12:10 ID:??? (-27,-30,-99)
    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 - 2007/10/07(日) 09:24:17 ID:??? (+0,-30,-39)
    >>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;
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について