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

    私的良スレ書庫

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

    元スレMySQL 総合 Part15

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - insertall + - mregexp + - SSD + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : NAME IS - 2009/02/20(金) 09:55:41 ID:??? (+2,-22,-3)
    集計関数使えば?
    552 : NAME IS - 2009/02/20(金) 10:03:58 ID:??? (+13,-30,-34)
    >>551
    入力は↓のようにしてるんですが,
    select jikan1, jikan2, timediff(jikan1,jikan2) from テーブル名;

    この場合、集計関数はどこで使えばよいのでしょうか?
    初心者ですいませんorz
    553 : 541 - 2009/02/20(金) 11:13:02 ID:??? (+64,+29,-32)
    >>546
    ヒントアリガト。でもv4.1での実装なんでトリガはだめなんだorz

    >>547
    俺の頭の悪いのが問題かも知れんが、ちょっとイミフ


    やっぱり素直にプログラム側で重複チェックを実装することにするヨ
    555 : NAME IS - 2009/02/20(金) 12:50:37 ID:??? (+62,+29,-58)
    5.1の目玉的な機能であるパーティショニングだけど、
    FULLTEXTインデックスが使えないのね

    データがすごい量で増えていくので、パーティショニング機能は
    使いたいけど、全文検索するカラムがある場合は
    そこだけ別テーブルで管理って感じなのか?
    556 : NAME IS - 2009/02/20(金) 12:51:14 ID:??? (+17,-10,-10)
    ver4のデータをver5に移す時はどのような手順を踏めば良いですか?
    557 : NAME IS - 2009/02/20(金) 22:52:04 ID:??? (-1,-29,-49)
    初心者です。勉強でc++(visual studio)上からmysqlを操作する方法を探していますが、
    方法を記載してるサイトがありましたら教えていただけないでしょうか?
    558 : NAME IS - 2009/02/21(土) 00:47:56 ID:??? (+4,-30,-86)
    質問です。
    blog_articlesというテーブルの中に、timeというキーがあります。
    timeはYYYY-MM-DD HH:II:SSというフォーマットになってます。

    timeの、YYYY-MM-DDの部分だけで、重複削除してレコードを取り出したいのですが、
    どのようなクエリ送信を行えばよいでしょうか?
    559 : NAME IS - 2009/02/21(土) 15:23:04 ID:??? (-1,-29,-34)
    >>558
    GROUP BY LEFT(time,9)
    で良くね?
    560 : NAME IS - 2009/02/21(土) 15:23:51 ID:??? (+48,+27,+0)
    10だったな
    まあどうでもいいや
    561 : NAME IS - 2009/02/21(土) 16:06:43 ID:fHAIG+ux (+0,-21,-5)
    >>516
    バグなんじゃない?
    5.0なら大丈夫だと思う。
    563 : NAME IS - 2009/02/22(日) 12:22:40 ID:??? (+31,+3,-23)
    Oracleとは違うのだよ、Oracleとは。
    564 : NAME IS - 2009/02/22(日) 22:25:17 ID:dnKXa8Bx (-5,-29,-70)
    DBに関しての質問です。
    Yahooオークションのようなサイト作ろうと思ってます。
    カテゴリーのテーブルはどのように作るべきでしょうか?
    categoryテーブルを1つだけでよいのか?
    それともcategory1,category2...と分けるべきなのか?
    よろしくお願いします。
    565 : NAME IS - 2009/02/22(日) 22:29:04 ID:??? (+76,+29,-4)
    悪いこと言わんからもうちょっと基礎的な勉強してからにすれ
    566 : 564 - 2009/02/22(日) 22:40:02 ID:??? (+65,+28,-17)
    >>565
    予想通りのレスありがとうございます。
    一応、知ってる人だけレスください^^;
    567 : NAME IS - 2009/02/22(日) 22:59:39 ID:??? (+78,+29,-210)
    「カテゴリー」の定義にもよるけど、集品を分類するための単純なタグ付け
    程度の意味合いであれば普通は一つ。
    あとは商品とカテゴリーの対応関係が1:NかN:Nかに応じて商品テーブル
    にcategory_idのカラムを付けるか商品vs.カテゴリーの対応表を作るか、
    お好きなように。あと、

    >category1,category2...と分けるべきなのか

    という選択肢は、RDBを多少なりとも勉強した人間であれば脊髄反射的に
    >>565と同様の感想を持つ程度に珍妙である事は覚えておいて損はない。
    基礎的な本でスキーマとインスタンスの区別から勉強した方が良いよ。
    568 : NAME IS - 2009/02/22(日) 23:04:42 ID:??? (+61,+29,-40)
    >>564
    どう作ろうがそれこそ自由なので一概に言えないが
    やっぱり検索の事を考えるとテーブルは一つかな。
    カテゴリの数だけテーブル作るのもめんどくさいし。

    でも自由なんで、自分で実験をして自分が使いやすい方を決めた方がいい。
    570 : 564 - 2009/02/22(日) 23:16:38 ID:??? (+91,+29,-145)
    >>567
    もうちょっと簡単に教えてください。
    ネラーって難しい言葉を羅列して賢く見せたい人多いけどそんなのどうでもいいです。

    >>568
    カテゴリの数ではなく深さでテーブルを追加するべきではと思っています。
    ジャンルによってカテゴリの深さも違いますし後で増えたときすぐ対応できますから。

    1つってことは何種類のカラムを作るべきでしょうか?
    category_id INT
    category_name VARCHAR
    この2種類で良いのでしょうか?
    ちなみに自分としてはRDBを用い複数のテーブルを作るべきだと思ってます。
    ※作り方は自由と言われたらそれまでですが正解を導き出したいので皆さんに助けを求めています。
    571 : NAME IS - 2009/02/22(日) 23:36:48 ID:??? (+73,+30,-67)
    >>570
    前提知識が無いままにここで聞いても時間の無駄。
    悪いけど、RDBを使うレベルまでに到達していないから、
    あなたにはSQLはまだ使えない。

    勉強して出直してきてくださいな。

    掲示板でなんでも手取り足取り教えてくれると思うな。

    果実とおんなじなんだよ。
    育てずに果実だけ得るなんてことはできなくてね。
    572 : NAME IS - 2009/02/22(日) 23:41:07 ID:??? (+87,+30,-273)
    >>570
    いちいち一言カチンと来るが釣られてやる。バカの壁に叫ぶようなものか。

    スキーマとインスタンスという言葉はRDBを知らない人にとっては全く
    馴染みがないものなので腹が立つのは判る。
    ただこれはデータベース設計における基本的な考え方なので、正解が
    欲しければまず勉強してもらわないと始まらない。

    すごく意訳をすればスキーマとは未来永劫変化しないもの、とか構造。
    というか、そういう意気込みで設計するもの。
    インスタンスとはデータの出し入れとかその日の気分で変化しうるもの。

    で、テーブルの定義は「スキーマ」に属する。カテゴリが増えたり深さが
    変化する度にテーブルを増やしたり消したりするのは、世間一般的には
    良い設計ではないし、検索や運用も大抵は困難という経験則がある。

    なので、カテゴリ数が増減したり深さが変化してもテーブルの定義を
    いじったりテーブルの追加削除を行う必要が一切無い、まずはそういう
    テーブルを考えてみること。これがスタート地点。大原則。黙って従え。

    ちなみに深さありのカテゴリ表を作りたいのであれば、大抵は次のような
    テーブルがら設計を考え始めると思う。無論他の方法もある。

    category_id INT
    category_name VARCHAR
    parent_id INT
    573 : 564 - 2009/02/23(月) 00:19:31 ID:??? (+41,-7,-46)
    >>572
    その作りで、1番上のカテゴリに属するデータがいくつ入ってるとかわかりますか?
    下位カテゴリから上位カテゴリを取得することは可能ですが
    上位カテゴリから下位カテゴリ(末端)を取得することは不可能ですよね?
    574 : NAME IS - 2009/02/23(月) 00:23:05 ID:??? (+84,+29,-1)
    >>572
    いちいち相手しないで放っとけや
    575 : NAME IS - 2009/02/23(月) 00:31:08 ID:??? (+68,+29,-3)
    >>574
    おまえこそいちいち気にすんなやw
    576 : NAME IS - 2009/02/23(月) 00:33:55 ID:??? (+82,+29,-35)
    >>573
    SQL92の範疇では苦手な類だけど、全然可能だよ。
    SQLの教本には必ず出てくる類の問題。
    "SQL 階層問い合わせ"、で検索してみるとよし。

    >>574
    いぢっているだけなので、飽きたら止めます。
    577 : NAME IS - 2009/02/23(月) 01:12:21 ID:??? (+40,+7,-57)
    一つのテーブルにカラムってPCのスペックにもよるでしょうけど何個くらい追加して大体大丈夫なもんなんでしょうか?
    テーブル

    カラム1 カラム2 カラム3 カラム4・・・・
    データ データ  データ  データ
     ・     ・     ・      ・
     ・     ・     ・      ・
     ・     ・     ・      ・


    このカラムがもし40個くらいだと、多すぎって笑われちゃうレベルですかね?
    578 : NAME IS - 2009/02/23(月) 01:45:26 ID:??? (+63,+29,-4)
    正規化した上で必要なら別にいいのでは
    579 : 564 - 2009/02/23(月) 05:09:25 ID:??? (+80,+29,-62)
    >>576
    おい!騙したなこの野郎!
    MySQLには階層問い合わせがないらしいじゃない。
    Oracleじゃないんだよここは。
    ストアド・プロシジャで作るしかないのかな?
    580 : 569 - 2009/02/23(月) 05:15:21 ID:w5zz97q8 (+20,+26,+0)
    だれか>>569を教えて下さい。
    581 : NAME IS - 2009/02/23(月) 05:27:02 ID:??? (+63,+29,-7)
    >>580
    いいって何が?それでできなかったの?
    582 : 564 - 2009/02/23(月) 05:46:36 ID:??? (+48,+28,+0)
    >>569
    それでいいよ。
    583 : NAME IS - 2009/02/23(月) 06:27:26 ID:ScHu02j5 (+39,+29,-24)
    カラムが40個とか50個とか、現場ではざらにあると思うが(それが良いかどうかは別にして
    584 : NAME IS - 2009/02/23(月) 06:38:04 ID:w5zz97q8 (+36,+29,-5)
    >>581
    >>582
    なんか結果が違ったので。勘違いかな。もうちょっと確認してみます。
    585 : NAME IS - 2009/02/23(月) 07:45:29 ID:??? (+75,+29,-165)
    >>579
    中途半端に調べて人を嘘つき呼ばわりするな。

    階層問い合わせ機能(WITH RECURSIVE)がSQL99からの標準。
    それ以前のSQL92の時代は階層の深さの上限を仮定してクエリを組み
    立てることで階層問い合わせを実現していた。ちょっと面倒。

    だから「SQL92の範疇では苦手な類」と書いた。
    しかし苦手だが出来ない訳じゃない。これは自己結合(知らない言葉
    だからって腹立てるなよ)の典型的な応用例で、ちゃんとしたSQLの
    解説本には必ず例が説明されている。

    珍妙なテーブル定義やストアド等の聞きかじりの技術を持ち出す前に
    基本を学べ。基本を。
    586 : NAME IS - 2009/02/23(月) 10:29:55 ID:??? (+65,+29,-14)
    >>578>>583
    はい
    一応このテーブル一つで管理したいデータでして、
    特に問題なさそうなのでこのままやってみることにします
    ありがとうございました
    587 : NAME IS - 2009/02/23(月) 10:49:37 ID:??? (+61,+28,-6)
    >583
    それって、正規化が出来てないか、手抜いてるんじゃ・・・。>カラムが40個とか50個
    588 : 564 - 2009/02/23(月) 11:05:24 ID:??? (+13,-30,-133)
    >>585
    WITH RECURSIVE kanri AS (
    SELECT * FROM category WHERE category_id = '2'
    UNION ALL
    SELECT category.* FROM kanri,category WHERE category.parent_id = kanri.category_id
    ) SELECT * FROM kanri;

    syntaxエラーが出てできませんがなにか…orz
    589 : NAME IS - 2009/02/23(月) 11:57:15 ID:??? (+7,-29,-7)
    おいおい
    WITH RECURSIVEはMySQLで使えないってオチか?
    590 : NAME IS - 2009/02/23(月) 13:29:37 ID:??? (+64,+30,-235)
    >>589
    書き方が中途半端だったが、MySQLはまだWITH RECURSIVEを
    サポートしていない。だからSQL92の範疇でやる基本的な方法を
    まず学べと言った。親切な自分がポインタを示すとだな、

    http://www.mysql.gr.jp/mysqlml/mysql/msg/12071

    これのAdjacency List(連接リスト)モデルが、階層の深さの上限を
    仮定してクエリを組み立てる古典的なやり方。
    これが基本。SQLの解説書にも必ず出ている。だから文句言う前に
    ちゃんとした解説書でまずこれを勉強しろ。理解して使いこなせ。
    WITH RECURSIVEだって発想の基本的な出発点はここだから。

    ついでにこの記事には「ネストセット」という方法も書いてあるが、
    ちょっと頭の体操が必要な上にちゃんと理解していないと更新で
    はまる。せっかち君には正直お勧めしたくない。危険すぎて。
    だからまず連接リストモデルをどうにかすべし。
    591 : NAME IS - 2009/02/23(月) 14:23:33 ID:??? (-5,-29,-23)
    WHERE の条件に bit 演算入れられますか?
    593 : NAME IS - 2009/02/23(月) 17:55:39 ID:??? (+3,-30,-199)
    MySQL - 4.0.27
    MySQL - 5.0.45

    下のようなテーブルで、日付とIDを記録しています。
    COMEDATE | ID
    -----------+-------
    2009-02-21 | 10010
    2009-02-21 | 10005
    2009-02-22 | 10001
    2009-02-22 | 10002
    2009-02-22 | 10003
    2009-02-22 | 10004
    2009-02-22 | 10005
    2009-02-23 | 10001
    2009-02-23 | 10002
    2009-02-23 | 10006
    2009-02-23 | 10007
    2009-02-23 | 10008

    このデータから、特定の期間内のID種類数を求めるには
    どうしたらよいでしょうか?

    上記の場合であれば、9種類のIDがありますので、
    9を求められればと思います。

    出来れば、サブクエリの利用できる環境と、
    そうでない場合のSQLを教えていただけると助かります。
    594 : NAME IS - 2009/02/23(月) 18:25:03 ID:??? (+10,-30,-42)
    SELECT count(DISTINCT id) FROM table WHERE comedate BETWEEN '2009-2-21' and '2009-02-23'
    とか。
    ってバージョンの違いわからないのでやってみて。
    595 : NAME IS - 2009/02/23(月) 18:29:20 ID:??? (+3,-30,-44)
    サブクエリバージョンは、、、
    SELECT count(id) FROM (SELECT DISTINCT id FROM table WHERE comedate BETWEEN '2009-2-21' AND '2009-02-23') AS t;
    596 : NAME IS - 2009/02/23(月) 21:41:13 ID:??? (+51,+21,-32)
    >>594
    ありがとうございました。
    なぜか、固定観念でGROUP BYが必要だと思い込んで四苦八苦していました…
    597 : NAME IS - 2009/02/24(火) 22:55:41 ID:2Mz+JFgK (+0,+0,+0)
    | 日付 | 作業 | 時間 | 名前 | 役職 |
    ------------------------------------------------
    | 2007/9/7 | 開始 | 8:00:00 | 田中 | ヒラ |
    | 2008/9/7 | 終了 | 17:48:00 | 田中 |   |
    | 2008/9/7 | 開始 | 9:30:00 | 佐藤 | 課長 |
    | 2008/9/7 | 終了 | 17:00:00 | 佐藤 |   |
    | 2008/9/7 | 開始 | 9:00:00 | 青木 | 部長 |
    | 2008/9/7 | 終了 | 17:00:00 | 青木 |   |
    | 2007/9/7 | 開始 | 8:00:00 | 山田 | ヒラ |
    | 2007/9/7 | 終了 | 17:23:00 | 山田 |   |

    このテーブルから、ヒラである田中と山田のデータだけを抽出した結果を表示させたいんです。
    つまり、↓のようになる感じです。

    | 2007/9/7 | 開始 | 8:00:00 | 田中 | ヒラ |
    | 2008/9/7 | 終了 | 17:48:00 | 田中 |   |
    | 2007/9/7 | 開始 | 8:00:00 | 山田 | ヒラ |
    | 2007/9/7 | 終了 | 17:23:00 | 山田 |   |

    どなたかお願いします。
    599 : NAME IS - 2009/02/25(水) 06:07:54 ID:??? (+13,-30,-13)
    >>579
    select
     A.日付, A.作業, A.時間, A.名前, A.役職
    from
     T A,
     (SELECT DISTINCT 名前, 役職 FROM T) B
    where
     A.名前 = B.名前
    AND
     B.役職 = 'ヒラ'

    データを見たときにヒラ社員も作業終了時はヒラ以上に
    グレードアップするのかと思い少し笑ってしまいました。
    600 : NAME IS - 2009/02/25(水) 13:07:31 ID:??? (+10,-7,+0)
    sage
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - insertall + - mregexp + - SSD + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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