のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,304人
昨日: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
    551 : NAME IS - 2007/12/11(火) 00:11:12 ID:??? (-19,-7,+1)
    sage
    552 : NAME IS - 2007/12/11(火) 15:07:28 ID:??? (-29,-30,-83)
    innoDBにてリレーションを組んだテーブルがあるんですが、
    片一方のテーブルのデータを削除すると "foreign key constraint fails"が出ます。

    ondelete cascadeをせずに、片一方のテーブルのデータを削除する方法はありますでしょうか。
    553 : NAME IS - 2007/12/11(火) 19:00:59 ID:??? (+22,+29,-2)
    何のための外部キーなのだ
    555 : NAME IS - 2007/12/12(水) 02:17:14 ID:??? (-27,-30,-145)
    夜だからかちょっと混乱してるかもです…

    ショッピングカートのデータベースです。
    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 - 2007/12/12(水) 02:36:02 ID:??? (-22,-30,-139)
    違った…これじゃすごい単純だ
    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 - 2007/12/12(水) 03:14:43 ID:??? (+24,+29,-2)
    >>556
    まだおかしい
    条件をよく見直すよろし
    558 : NAME IS - 2007/12/12(水) 03:31:25 ID:??? (-27,-30,-142)
    priceは除いても必要な構文は同じなので除外します。
    日本語で言うと
    「未清算の商品と清算済みの商品がそれぞれ1点以上カートに入っているユーザの名前」となります

    つまりまとめてみると

    『shopcartに userid=x AND accounted=1 なレコードがあり、かつ
     shopcartに userid=x AND accounted=0 なレコードがある』
    という条件を満たすuserid=xに対応するnameを求める

    ということです。

    ん?おかしい?
    GROUP BYでもいける気もする
    559 : NAME IS - 2007/12/12(水) 03:38:11 ID:??? (-21,-30,-37)
    これでどうか

    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 - 2007/12/12(水) 03:40:05 ID:??? (+25,+29,-23)
    >>559
    みゃー
    サブクエリ(?)でしたか
    未知の領域ですががんばって勉強します
    ありがとうございました
    561 : NAME IS - 2007/12/12(水) 04:00:45 ID:??? (-8,-6,-15)
    having を使ってうまいこと書けないかと思ったが
    眠いのでネルス
    565 : NAME IS - 2007/12/12(水) 23:18:42 ID:??? (+29,+29,-75)
    >>562
    そのページは phpMyAdmin 2.5.6 向けに書かれているみたいだから
    書かれている通りに作業を進めていってもうまくいかないと思うよ。
    (認証メソッドもクッキー認証のままだろうし)

    面倒くさいかもしれないけど、設定ファイルに書かれている項目を
    一つひとつ理解しながら進めるのがいいと思う。
    あるいは最新版にも使えそうな別の解説ページを探すとか。
    566 : NAME IS - 2007/12/12(水) 23:45:56 ID:??? (+36,+29,-39)
    >>565
    そうみたいですね
    2.5.6を落として入れてみたんですが、それも上手くいきませんでした。
    実は壊れたマシンの中じゃ動いてたんだけど、こういうのって
    上手く動作したらすぐにそのバージョンや手順をメモっておくべきなんでしょうね
    失敗したなぁ;;  ありがとうございました
    567 : NAME IS - 2007/12/13(木) 01:16:04 ID:??? (+27,+29,-10)
    あとそのときのバージョンのインストールパッケージ一式残しておくこと
    いつまでもダウンロードできるとは限らない
    568 : NAME IS - 2007/12/13(木) 10:31:56 ID:??? (-26,-29,-34)
    CPUの交換を行って、CPUの性能が上がったのに
    データアクセスが遅くなりました。
    CPUを交換したら、Mysqlの再インストールが必要な場合があるんでしょうか?
    569 : NAME IS - 2007/12/13(木) 13:47:58 ID:??? (+35,+29,-13)
    >>568
    おいおい、当たり前でしょ。システムの主要部分の構成を変えているのに、
    そのままで運用する気かよ。
    570 : NAME IS - 2007/12/13(木) 15:39:20 ID:??? (+37,+29,-35)
    >>569
    返答ありがとうございます。
    やっぱりMysqlをインストールする時にそのマシンの
    構成によって何かしらの変化があるって事なんですね?
    再インストールすれば大丈夫でしょうか?
    素人ですいません。。。
    572 : NAME IS - 2007/12/13(木) 18:03:30 ID:??? (+7,+19,+1)
    574 : NAME IS - 2007/12/13(木) 19:57:33 ID:??? (-25,-23,-70)
    カーネルにも依存するわな。
    今度のFreeBSDはマルチコアに対して期待できるパフォーマンスを発揮するが、
    LINUXだと、コアが増えるとパフォーマンスが落ちるみたいな話があるし。
    576 : NAME IS - 2007/12/13(木) 20:51:13 ID:??? (+32,+29,-2)
    んで、>>569 の言いたい事は何?
    577 : NAME IS - 2007/12/13(木) 21:29:08 ID:??? (+27,+29,-3)
    いえ、別に言いたいことはありません。ただ、・・・
    578 : NAME IS - 2007/12/14(金) 12:32:18 ID:??? (+27,+29,-8)
    ただ単に偉そうに言って見たかっただけだろ。
    581 : NAME IS - 2007/12/14(金) 21:29:17 ID:??? (-29,-30,-38)
    5.0以降なら

    select TABLE_NAME
    from information_schema.TABLES
    where TABLE_SCHEMA = 'db_name'
    and TABLE_NAME not like 'dtb%';
    582 : 580 - 2007/12/14(金) 21:35:14 ID:??? (+22,+29,-4)
    …以外のだったのね スマソ
    584 : NAME IS - 2007/12/14(金) 22:58:52 ID:??? (-26,-30,-160)
    2ちゃんねるって有料なの?
    はい。有料です。
    2ちゃんねる使用料
    ■閲覧
    1スレッド 25円
    ■書きこみ
    1レス 10
    スレ立て 500円(大人の時間、ニュース速報は1000円)
    混雑時は立てる事が出来ない場合がありますが、その時は課金されません
    ■書きこみ放題
    ・プラチナプラン 4800円 閲覧無料 スレ立て200円、通常3スレ/月、実況5スレ/週の無料サービス
    ・ゴールドプラン 3500円 閲覧無料 スレ立て半額 HOT!
    払わないと、大変なことになるかもしれませんね・・・( ̄ー ̄)ニヤリ
    2ちゃんねるは有料だった
    ソース
    http://www.geocities.jp/guide_2ch/
    586 : NAME IS - 2007/12/15(土) 00:26:49 ID:??? (+24,+29,-15)
    >>584
    後から請求来るの知らねえの?
    588 : NAME IS - 2007/12/15(土) 06:09:03 ID:??? (-21,-30,-132)
    select文を打つ前にset charset utf8を投げてみれ。
    コマンドプロンプトでsql文を投げてるなら、PHPのmysql_queryでも試してみ。
    そのテーブル自体がutf8じゃなかったりすると、ALTER TABLEで文字コードを変換する必要がある。
    未確認だけど、たぶんdefault-character-set統一後にTABLEを作成する必要があるかもです。
    589 : NAME IS - 2007/12/15(土) 06:13:47 ID:??? (+35,+29,-46)
    >>588
    そういう押し付けがましいレスは止めろ。
    5.0.45って書いているんだから、文字コードの問題じゃないだろ。

    ラーメン屋の癖にイタリアン風の盛り付けをして、
    フォークとスプーンで食べさせるのと一緒だろ。
    分をわきまえろ。
    590 : NAME IS - 2007/12/15(土) 06:15:43 ID:??? (+27,+29,-5)
    イタリア系の人はラーメンもフォークで食おうとするけどね。
    591 : NAME IS - 2007/12/15(土) 07:06:54 ID:??? (+27,+29,-5)
    そういう押し付けがましいレスは止めろ。

    流行ってるんですか?
    592 : NAME IS - 2007/12/15(土) 07:09:30 ID:??? (+21,+28,-16)
    低脳の決まり文句です。
    593 : NAME IS - 2007/12/15(土) 08:22:12 ID:??? (+31,+29,-1)
    >>589
    そういうイタリア風のレスは止めろ。
    594 : NAME IS - 2007/12/15(土) 08:44:51 ID:??? (+27,+29,-1)
    スパゲッティ食いに行って
    箸出されるのも困るよね
    595 : NAME IS - 2007/12/15(土) 08:50:23 ID:??? (+27,+29,-31)
    チャーハン注文してスプーン出てきたら、食べやすくはあるが萎える。 
    598 : NAME IS - 2007/12/15(土) 12:54:40 ID:??? (-27,-30,-105)
    set names utf8; も試してみて。
    あと関係ありそうなシステム変数を手当たり次第ダンプすれば
    解決の糸口になるかも。
    show variables like 'character_set%';
    show variables like 'collation%';
    599 : NAME IS - 2007/12/15(土) 13:36:45 ID:??? (+33,+29,-23)
    チャーハンに付いてくるレンゲでは食べにくい。
    普通の金属のスプーンなら食べやすいけど。

    PHP使ってる時点でスキル低いから無理でしょ。
    SJIS使えるアクセスでも使ったら?
    600 : NAME IS - 2007/12/15(土) 13:38:17 ID:??? (+27,+29,-21)
    PHPで投げるのがそんなに嫌か?
    適材適所だと思うんだがなぁ
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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