回答数
気になる
-
phpMyAdminのrootユーザー
XamppでインストールしたphpMyAdminには インストールされた初期状態では rootユーザーが最初から3つ登録されています。 1.root ホスト 127.0.0.1 2.root ホスト ::1 3.root ホスト localhost 3つとも削除はできないようになっていますが rootユーザーが3つあるのは それぞれ何か特別な役割があるのでしょうか? パスワードを設定する場合は それぞれ異なるパスワードを設定することになるのでしょうか? よろしくお願いいたします。
質問日時: 2014/03/24 18:30 質問者: okdayook
ベストアンサー
1
0
-
SQL分の作り方
以下のようなテーブルがあります name point date A 1 2014/1/1 B 2 2014/1/1 C 3 2014/1/1 A 1 2014/2/1 B 3 2014/2/1 C 2 2014/2/1 A 2 2014/3/1 B 4 2014/3/1 C 3 2014/3/1 上記のテーブルを name point(2014/1) point(2014/2) point(2014/3) A 1 1 2 B 2 3 4 C 3 2 3 というように並べるにはどのようなSQLを打てばよいでしょうか。 以下のようなSQLを打ってみたらデータ量が多いときになかなか応答が帰ってきません。 SELECT name, ifnull(sum(CASE WHEN date = '2014-01-01' THEN point END),'-') as point(2014/1),ifnull(sum(CASE WHEN date = '2014-02-01' THEN point END),'-') as point(2014/2),ifnull(sum(CASE WHEN date like '2014-03-01' THEN point END),'-') as point(2014/3) FROM tableA GROUP BY name
質問日時: 2014/03/22 14:55 質問者: kan-chi
解決済
2
0
-
水平分割されたテーブルに対するselectの書き方
水平分割(パティショニング/シャーディング)されたテーブルが何十個もあり、それらのテーブルから一気に条件にあうデータを抽出したいです。 このような場合にどのようにSelect文を書けば良いでしょうか? 自分で作ったものではなく、ただの利用者であるため、分割しないように作り直すなどの根本的な対策はできないです。 なお、使っているDBはMySQLです。
質問日時: 2014/03/20 18:41 質問者: teru0011
ベストアンサー
1
0
-
MySQL SELECTの指定について
まず、御覧頂きありがとうございます。 早速質問なのですが、 CREATE TABLE `hoge` ( `id` int(8) NOT NULL, `name` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `hoge` (`id`, `name`) VALUES (1, 'hogeA'), (2, 'hogeB'), (3, 'hogeC'), (4, 'hogeD'); CREATE TABLE `test` ( `id` int(8) NOT NULL, `name` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `test` (`id`, `name`) VALUES (1, 'testA'), (4, 'testD'); という値が入ってるテーブルがあるとします。(長くなってすみません) で、 hoge.id と test.id が重複した場合 test.name を表示させたいです。 期待値としては id,name 1.testA 2,hogeB 3,hogeC 4,testD になります。 業務でJoinを使うようなテーブル構造にそもそもしないというのもあり、クリティカルなSQLコードに不慣れで御知恵を借りたく質問させて頂きました。 よろしくお願いします。
質問日時: 2014/03/18 18:06 質問者: sosuno20
ベストアンサー
3
0
-
mysqlのif文かcase文で複数条件を指定する
mysql初心者です。 3つのテーブルでスケジュールの仕組みを考えていますが Staff→スタッフデータ id name 1 田中 Sch1→日付出勤 id start_time end_time date flg 1 9:00 22:30 2014-03-17 1 Sch2→曜日出勤 id start_time end_time dateW 1 9:00 22:30 1 ※dateWは曜日(0~6) 日付出勤優先なので、なければ曜日出勤を出力します。 たとえば、 田中さん (1)日付登録:2014-03-17(月) 09:00-18:00 (2)曜日登録:1(月) 10:00-19:00 (3)曜日登録:2(火) 09:00-18:00 PHP側でやるなら、 for (一週間分回す) { if (Sch1[date]) { 日付設定出力 }else{ 曜日設定出力 } } 全出力した(日付、曜日)データを一個の配列に入れて、start_timeでソートするかで出力する。。 Mysqlのif文かcase文分でどう書いたらいいですか? 説明が下手ですが、 どなたかご存知の方がいらっしゃれば是非、ご教授ください。
質問日時: 2014/03/17 19:40 質問者: xpbbs
ベストアンサー
1
0
-
SELECT出来るのにDELETE出来ないのはなぜ
MySQLで下記SELECTレコードを削除したいと思い、 DELETEへ変えたら文法エラーになります。 SELECT * FROM `piyo` AS a LEFT JOIN `hoge` AS c ON a.`hoge_id` = c.`hoge_id` WHERE c.`x_id` =13 DELETE * FROM `piyo` AS a LEFT JOIN `hoge` AS c ON a.`hoge_id` = c.`hoge_id` WHERE c.`x_id` =13 どう書けば良いでしょうか?
質問日時: 2014/03/13 08:35 質問者: re97
ベストアンサー
1
0
-
MySQLでのランキングを作成するSQL
ランキングを作成する、効率の良いSQLを教えて下さい。 MySQLで、以下の状態です。 テーブル名: hoge カラム: id,kbn,name,score,flg,date id…自動 kbn…1~4 name…string score…int flg…bool date…年月日 (1)dateが1週間以内のデータのみ (2)flgがtrueのデータのみ (3)kbn毎に、5レコード取得 (4)順位は、点数が重複している場合は同一の順位をつけSQLで生成しn位のフォーマット (5)6レコード以降に同一スコアのデータがある場合は日付が古い順 (6)scoreは、n点のフォーマット (7)該当データが5レコード存在しなかった場合は、順位だけをセットし他をnull 欲しい結果は、以下の状態です。 kbn,順位,name,score 1 ,1位 ,ホゲ,100点 1 ,2位 ,あい, 85点 1 ,2位 ,かき, 85点 1 ,4位 ,くけ, 70点 1 ,5位 ,さし, 65点 2 ,1位 ,すせ, 99点 2 ,1位 ,たち, 99点 2 ,3位 ,つて, 80点 ・ ・ ・ 4 ,4位 ,らり, 10点 null ,5位 ,null, null 以上、よろしくお願い致します。
質問日時: 2014/03/13 06:49 質問者: RYO-88
ベストアンサー
1
0
-
テーブルの内容とテーブルのカラムの件数
以下のようなテーブルがあります。 そのテーブルの内容と、そのテーブルのあるカラムの件数を条件にして抽出したいのですが、どのように指定すればよろしいでしょうか? テーブルA id(int) AUTO_INCREMENT, user_id(varchar), price(int), date(datetime) 表示したい一覧 user_id | date | price A | 2014-03-10 10:00:00 | 2600 B | 2014-03-11 11:00:00 | 2720 A | 2014-03-13 12:00:00 | 2500 C | 2014-03-14 15:00:00 | 2860 B | 2014-03-18 13:00:00 | 2450 A | 2014-03-19 19:00:00 | 2550 ・・・ などのレコードがあった場合、 user_idが同じ場合のレコード数が2~5の場合等を抽出したいと思います。 うまく表現できませんが、このような場合の抽出の仕方をわかる方、よろしくお願いします。
質問日時: 2014/03/10 11:38 質問者: ok-rjak
ベストアンサー
2
0
-
【PHP&MySQL】ユニークな大量データ投入方法
質問させて頂きます。 PHPとMySQLを使用して、ユニークな値(10桁ほどの英数文字列)を持ったデータを、DBに大量に登録したいと考えています。1度に1万件ほどを想定しています。 その場合、 先に大量のデータを作成して、1件ずつユニークかのチェック→DBに登録(insert)といった方法や、 1件データを作成→ユニークチェック→DBに登録(insert)を繰り返す方法などあると思うのですが、 どのような方法が比較的DBに負荷をかけずに短い時間で行なうことが出来るでしょうか。 質問が大雑把になってしまい申し訳ありません。 自分なりに調べてはみたのですが、確認したサイトなどによって方法がバラバラでしたので、こちらで質問させて頂きました。 処理以外の部分でも、テーブルやカラムにこういった設定を行なうと良いなど、どのような情報でもよろしいので、ご教授頂けると幸いです。 また、上記の質問内容に不備な点がございましたら、申し訳ございません。 ご存じの方がいらっしゃいましたら、よろしくお願いいたします。
質問日時: 2014/03/07 14:36 質問者: non05410
ベストアンサー
1
0
-
SQL 自己結合で件数の条件指定
WKテーブルにカラム ID(PK), POSTNO, DATA, FLAGがあります。 POSTID毎にIDで小さい順に並べて2件以上の行にFLAGを1に設定したいです。 以下のようなイメージです。 カンマは実際にはありません。 select * from WK; ID POSTID DATA FLAG 1 1 aaaa 0 2 1 bbbb 0 3 1 cccc 0 →これを1 4 1 dddd 0 →これを1 5 5 eeee 0 6 5 ffff 0 7 5 gggg 0 →これを1 8 4 hhhh 0 9 4 iiii 0 10 4 jjjj 0 →これを1 まず行単位にPOSTID毎の件数が必要と思い以下のselect文を書いてみました。 更にPOSTID毎に上位2件以外を抽出するにはどうすればいいでしょうか。 またはもっと上手いやり方があればご教示お願いします。 select a.ID, a.POSTID, b.CNT from WK a, (select POSTID, ID, count(POSTID) as CNT from WK group by POSTID) b where b.POSTID = a.POSTID order by a.POSTID, a.ID; ID POSTID CNT 1 1 4 2 1 4 3 1 4 この行を抽出したい 4 1 4 この行を抽出したい 8 4 3 9 4 3 10 4 3 この行を抽出したい 5 5 3 6 5 3 7 5 3 この行を抽出したい
質問日時: 2014/03/06 22:06 質問者: bindoo
ベストアンサー
1
0
-
MySQLにて、点数の抽出文
MySQLを利用して点数の抽出をしたいと思います。 -------------------------------------- point | -------------------------------------- 9 1 1 5 6 6 3 2 1 9 2 3 8 9 9 4 3 -------------------------------------- というテーブルデータがあったとして、point の存在する順が欲しいのです。 PerlからMySQLを利用しています。その際のSQL文が知りたいです。 point 9 が4件で一番多いので 9 という数字が最初に返り、 point 3 が3件で二番めに多いので 3 という数字が次にかえってくる という風にしたいのですが、可能でしょうか?
質問日時: 2014/03/06 17:31 質問者: nakisan2011_12
ベストアンサー
1
0
-
直近のデータのリストを取得したい
Mysqlの件で教えてください。 Mysqlのバージョンは5.6.14です。 +---------------------------------------------------+ | juchuu | keishiki | starttime | koutei | +----------+-----------+---------------+------------+ | 8830 | 7745 | 2013-12-1 14:24 | 1010 | | 8830 | 7745 | 2013-12-2 8:30 | 1020 | | 8835 | 7720 | 2013-12-3 15:20 | 1010 | | 8840 | 7745 | 2014-01-01 8:30 | 1010 | | 8840 | 7745 | 2014-01-01 13:30 | 1020 | 上記のテーブルで、 ・keishiki=7745 のデータ ・直近のjuchuuのグループのリスト(4行目と5行目のリスト) を取得する構文を教えてください。 juchuuグループは2行とは限りません。 よろしくお願いします。
質問日時: 2014/03/05 21:57 質問者: kenken9000
ベストアンサー
4
0
-
MySQLでテーブル一致条件に正規表現は使用可能?
・MySQLで一致条件に正規表現を使用することは出来ますか? ・もし出来るとすればどのようにすれば良いでしょうか? ■やりたいこと ・aテーブルのurlカラム内容が「/color/★★」だったら「/color/」以下の★★を抽出して、bテーブルのidと一致したレコードを抽出したい ・aテーブルの★★と、bテーブルのidカラムが一致しているレコードが欲しい ・aテーブルのurlカラムには「/color/58」「/color/26」「/hoge/■■」などが入っています SELECT * FROM a LEFT JOIN a.url = b.id REGEXP '^(/color)'? where a.★★ = b.id
質問日時: 2014/03/05 17:15 質問者: re97
ベストアンサー
2
0
-
計算結果でtrueならフラグをつけるSELECT文
MySQL5に、以下のような月刊雑誌目次データがあります。 mysequenceが通巻第●号、のような数字を表しています。 最新の3号(あるいは6号、12号)だったら 仮想カラム myflg=1と印をつけるSELECT文をご教示 いただけないでしょうか。 データ例では138~236号と途中を省略しまくってますが 実際は1号から数百号まであり、最新の3冊(あるいは6冊、12冊) だったら、 if ($myflag = 1 ){ echo "<img src='./image/最新の3号.gif'>"; } みたいな使い方をしたい次第です、よろしくお願い致します。 select *, (if( select (max(mysequence) - 3),1,0 ) as myflg) from mymagazine みたいな雰囲気かと思いますが、left joinとか難しい照会が 必要でしょうか。よろしくお願い致します。 create table mymagazine ( mycode int(5) unsigned not null auto_increment comment '管理コード', mypubyear int(4) default null comment '発行年', mypubmonth int(2) default null comment '発行月', mysequence int(3) default null comment '号', mysortno int(2) default null comment '巻毎のソート番号', mycategorycode int(2) default null comment '分類コード', mytheme varchar(900) default null comment 'テーマ', primary key( mycode ) ) engine=InnoDB default charset=utf8 auto_increment =1; insert into mymagazine ( mypubyear , mypubmonth , mysequence , mysortno , mycategorycode , mytheme )values(2005,7,138,1,99,''),(2005,7,138,2,1,'サッカー'),(2005,7,138,3,1,'サッカー'),(2005,7,138,14,16,''),(2005,7,138,15,15,''),(2005,8,139,4,1,'野球'),(2005,8,139,5,1,'野球'),(2005,8,139,17,17,''),(2005,8,139,18,17,''),(2005,9,140,1,99,''),(2005,9,140,2,1,'テニス'),(2005,9,140,3,1,'バスケ'),(2005,9,140,4,1,'バスケ'),(2005,9,140,5,1,'バスケ'),(2005,9,140,6,1,'水泳'),(2005,9,140,7,2,''),(2005,9,140,8,14,''),(2005,9,140,9,13,''),(2005,11,142,2,1,'柔道'),(2005,11,142,3,1,'剣道'),(2005,11,142,4,1,'剣道'),(2005,11,142,5,8,''),(2005,11,142,6,2,''),(2006,1,144,2,1,'卓球'),(2006,1,144,3,1,'卓球'),(2006,1,144,4,1,'バレー'),(2007,9,236,2,1,'陸上'),(2007,9,236,3,1,'陸上'),(2007,9,236,4,1,'陸上'),(2007,9,236,5,4,'ソフト'),(2007,9,236,6,5,'');
質問日時: 2014/03/04 00:12 質問者: litton101
ベストアンサー
1
0
-
MySQLのdatetime型に0月0日を格納
MySQLのdatetime型カラムに「月」や「日」だけ不明なデータを格納したいのですが、どうすれば良いでしょうか? ・具体的なパターンは、下記3フォーマットの何れかです ・2013-03-02 ・2013-03 ・2013 ※月日が不明なデータは全体の一部 ■案1 ・不明な日付を0に置き換え格納 ・2013-03-00 ・2013-00-00 ■案2 ・不明な日付を1に置き換え格納 ・2013-03-01 ・2013-01-01 ※本来の日付と見分けがつかなくなる ■質問 ・日付不明が後で判別できるよう、出来れば0で置き換えたい ・MySQL的に問題ないでしょうか? ・一般的に日付が不明なデータはどのように処理するのでしょうか? ■環境 ・MySQL ・PHP
質問日時: 2014/03/03 13:15 質問者: re97
ベストアンサー
3
0
-
MySQLチューニング
同順位を考慮したランクの取得について(1~55位まで) 下記の2つのテーブルがあります。 rankingscoreinfo フィールド名 型 長さ missionid integer 4 NOT NULL name varchar 20 NOT NULL skill integer 4 NOT NULL score integer 4 NOT NULL rankinginfo フィールド名 型 長さ NOT NULL missionid integer 4 NOT NULL name varchar 20 NOT NULL kind integer 4 NOT NULL missionidとname2つのテーブルの共通フィールドです。 この二つを組み合わせて同順位を考慮したスコアランキングを作成したいです。 1位のscoreが3人同点の場合、3人のスコアランキングは1位で次の人は4位になるようにしたいです。 SQLを組んだのですがレコード数が増えるにつれてどんどんSQLが返ってくる速度が遅くなって困っています。 この二つのテーブルの最速のSQLを組みたいのですがどなたか教えて下さい。 とりあえずINDEXは考慮なしでお願いします。 参考までに私が組んだSQLは下記のものになります。 SELECT d.name FROM (SELECT *, (SELECT COUNT(a.score)+1 FROM rankingscoreinfo AS a , rankinginfo as b WHERE a.missionid=10 AND a.skill= 2 AND b.kind = 2 AND a.missionid = b.missionid AND a.name = b.name AND a.score > c.score ) AS score_rank FROM rankingscoreinfo AS c WHERE c.missionid = 10 AND c.score AND c.skill=2 ) AS d , rankinginfo as e WHERE e.missionid = 10 AND e.kind = 2 AND d.skill = 2 AND d.missionid = e.missionid AND d.name = e.name AND d.score_rank >=1 AND d.score_rank <= 55 ORDER BY score_rank
質問日時: 2014/03/01 20:16 質問者: numatahitomi
ベストアンサー
1
0
-
テーブル内のストレージエンジンの確認
MySQL超初心者です。 現在いろいろストレージエンジンを試しているのですが、テーブル内に格納されているデータのストレージエンジンを調べる方法はないでしょうか? いろいろ調べてみたのですが、テーブルのストレージエンジンを確認するコマンドにshow table status;がありました。しかしこれでは、データが本当にそのストレージエンジンを使って格納されているかどうかがわかりません。 一覧表示か検索でテーブル内に入っているデータのストレージエンジンを直接参照する方法はないでしょうか?
質問日時: 2014/03/01 01:43 質問者: test4587
解決済
1
0
-
特定の単語の検索除外
PHPとMySQLを利用した検索フォームを作成しています。 そこで質問なんですが、2重括弧があればそのカッコ内の単語はすべて検索結果に表れないようにしたいです たとえば、[[test]]というデータがあったとすると、testと検索しても表示されないようにする。 PHPでもMySQLでも構いません。個別に単語を登録する以外でこれを解決する方法はないでしょうか? よろしくお願いします。
質問日時: 2014/03/01 01:23 質問者: test4587
解決済
1
0
-
直近1ヶ月に誕生日を迎える社員を抽出
社員の中で直近の1ヶ月に誕生日を迎える社員を抽出し近い日付から順番に表示したいと思っています。 以前ご教示頂いたコードで出来たのですが、少しおかしい点が見つかりました。 現在では下記のように正常に表示されます。 3月2日 山田 3月15日 菊池 3月22日 田中 しかし、実際に山田の誕生日である当日(3月2日)になると、山田のデータは一番下に表示されてしまいます。 3月15日 菊池 3月22日 田中 3月2日 山田 コードは下記のようになっています。 $stmd = date('m/d'); $endmd = date('m/d', strtotime('+1month')); $join = $stmd < $endmd ? 'and' : 'or'; $sql="SELECT office.*, (case when date_format(birth, '%m/%d') <= ? then 1 else 0 end) as sw FROM office where date_format(birth, '%m/%d') >= ? " . $join . " date_format(birth, '%m/%d') <= ? order by sw, date_format(birth, '%m/%d')"; これはどのようにすれば当日になっても順番どおりに表示させることが出来るでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。
質問日時: 2014/02/28 08:24 質問者: tanaka_kenta
解決済
1
0
-
指定した年に在籍していた社員を抽出する
社員のデータをテーブルに格納しました。 テーブルは下記のようになっています。inが入社年。outが退社年です。退社年が空白の社員は在籍中を表しています。 テーブル名:office nama(VARCHAR型)|in(INT型)|out(INT型) 田中|2003|2008 加藤|1995|2001 桐谷|2009| やりたい事が二点あります。 (1)「2007年に在籍した社員」と指定した場合。上のテーブルでいうと田中のデータを抽出。 「in<2007 AND out>2007」このような指定をすればいいのかと思ったのですが、空白(現在も在籍中)の場合どうすればいいのか分かりません。 (2)「在籍年数が4年以上6年未満の社員」と期間を指定した場合。上のテーブルでいうと田中と桐谷のデータを抽出。 この場合SQL文はどのようにすれば良いでしょうか? このテーブルのデータの書き方だと難しいでしょうか?難しければもっとこうした方が良いなどアドバイスを頂けると幸甚です。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。
質問日時: 2014/02/27 14:09 質問者: tanaka_kenta
ベストアンサー
4
0
-
条件によって抽出するデータを変える
PHPやMySQLの勉強を兼ねてサッカーチームの試合データをテーブルに格納しました。 テーブルは下記のようにしました。他にもフィールドはありますがとりあえず3つのみ。 左からホームゲーム(H)かアウェーゲーム(A)か。ホームチームの得点。アウェーチームの得点です。 table名:gamedata h_a(VARCHAR型)|home_score(INT型)|away_score(INT型) H|5|3 A|2|1 A|3|4 このようなテーブルから「2得点以上5得点未満の試合」を抽出したい場合はどのようなSQL文になるのでしょか? 上記のテーブルだと「A|3|4」このデータだけ抽出されることになります。 問題点だと思うのは下記の二つ。 一つはホームゲームの場合は「home_score」に得点が格納されていますが、アウェーゲームの場合は「away_score」に得点が格納されていることになります。 二つ目はデータがまだ不十分で得点が何も入力されていないデータもあるという点です。こういうデータはスルーしたいです。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。
質問日時: 2014/02/27 10:49 質問者: tanaka_kenta
ベストアンサー
1
0
-
timestampを引算し6ヵ月以上ならフラグ=1
登録されているレコードが6カ月または12ヶ月以内か判定し、TRUEならフラグに1を記すSELECT文をご教示お願いいたします。 MySQL5です。テーブル mytableに、 (1) myName(氏名、varchar(600)、レコード例:加藤太郎) (2) RegistDate(INSERTした日付、timestamp、レコード例:2005-06-25 09:30:00) と2カラムがあります。 考え方としては照会時に、 「本日のサーバーの月度 マイナス RegistDateの月度 ≧ 7ヶ月(または13ヶ月)」なら「myFlag=1」ということになるかと思いますが・・・ select case when to_days(now()) - to_days(RegistDate) >=7 then myFlag = '1' from mytable とか、 IF THENなどになろうかと思いますが、よろしくお願い致します。
質問日時: 2014/02/25 14:36 質問者: litton101
ベストアンサー
3
0
-
mysql使用中エラー1044が出てしまいました。
ワードプレスで作ったホームページをあるサーバーでアップしてましたが 突如エラーが出始めた為、サーバーの移転を考えていますが、その新たな サーバーのphpmyadminを起動して、以前のサーバーからエクスポートした mysqlのデータをインポートしようとしましたが、エラー1044というのが 出てきてしまい、困っています。 ホームページ制作に関しては素人中の素人な為、ネット上で解決方法を 模索してみるもののいまいち分からず今に至っています。 とりあえず、ネットで調べた方法の1つでmysqlのデータを見れるようにして CREATE DATABASEから始まる記述を削除してみたのですが、これでも 上手くいかず、、。 他にも調べた結果、Dosコマンドの事やルート権限の事も書かれていましたが、 私には難しく、分からずじまいでした。 どこをどうしたらいいのかさっぱり分からず途方にくれています。 このエラーを解消し、データを上手くインポートするにはどうしたらいいのかを 教えて頂けたらと思います。
質問日時: 2014/02/24 11:41 質問者: rupaso0820
ベストアンサー
1
0
-
レンタルサーバーでトリガーを作れない
エックスサーバーを借りたのですが、phpMyAdminでトリガーが作れません。 そもそもトリガーのタブがなく、データベースを選んでSQLコマンドでトリガーを作成すると、 #1227 - Access denied; you need the SUPER privilege for this operation と出て「SUPER権限がないために実行できない」ようです。 phpMyAdminのトップ画面には「特権なし」と書いていますし、どうすればトリガーを作成できるのでしょうか? そもそも作成できないのでしょうか? エックスサーバーのマニュアルにも記載されておらず、ネットで検索しても出てきません。 何かおわかりでしたらお教えください。 どうぞよろしくお願い致します。
質問日時: 2014/02/18 15:13 質問者: fantrax
ベストアンサー
3
0
-
テーブルを別ける判断要素をお聞かせ下さい
お世話になっております。データベースのテーブルの別け方について質問させて下さい。 例えば、会員制のブログサービスを公開するとして、各会員の個人情報を収めるmemberというテーブルを以下のような構成で用意したとします。 (idはURLの一部となるもの) no id mail pass name blog_title 1 lala ***@***.com 1234 佐藤 私の日記帳 2 tecno **@***.com 5432 石田 明日は何処へ 3 nonno **@***.com 9812 毛利 音楽大好き 上記は、会員の個人情報と併せ、ブログのタイトルなども1レコードで済むことが出来るので、会員情報とブログの情報も登録したケースです。 対して、以下は会員情報とブログ情報を別けた場合です。 memberテーブル no mail pass name 1 ***@***.com 1234 佐藤 2 **@***.com 5432 石田 3 **@***.com 9812 毛利 blog詳細テーブル(member_noとnoで紐付けている) no member_no id blog_title 1 1 lala 私の日記帳 2 3 nonno 音楽大好き 3 2 tecno 明日は何処へ 例えばhttp://blog.sample.com/lala/ というURLにアクセスされた場合、1つのテーブルに情報が収められている場合、個人情報が登録されたテーブルに接続しなければなりませんが、ブログ情報だけを別にしたテーブルを設けていると、個人情報が登録されたテーブルには接続しなくても済むかと思います。 ここで質問させて下さい。 以前、1つのレコードで収まるなら、複数のテーブルを用意する必要はないといった意見を聞いたことがあるのですが、上記のような2つのケースの場合、やはり貴重な情報を含まれたテーブルは、極力、接続機会を減らす方が良いのでしょうか? 今日まで、1つのレコードで収まるなら複数のテーブルは用意することなく来ましたが、もしかして、 ・2つのテーブルに別けようが、1つが漏洩したら全て漏洩したと同じだ。だから1つにまとめて問題ない。 ・貴重なテーブルは接続機会を減らすべきだ。 というような意見があるのでは?と、意見を伺えればと思い、質問させて頂きました。 お忙しいとは思いますが、ご意見のほど宜しくお願い致します。
質問日時: 2014/02/17 18:48 質問者: a4_chapp
ベストアンサー
1
0
-
MySQL 改行コードを含む文字列の登録
こんにちは。 改行を含む文字列「abc改行def」をVARCHAR型のカラムに登録した時に、文字列「改行def」が削除されてしまい困っております。解決方法をご存知の方がいらっしゃいましたら教えて頂きたいです。
質問日時: 2014/02/17 18:31 質問者: NoMusicNoLife49
ベストアンサー
2
0
-
PDOで取得すると全てSTRING型で取得する?
PDOを利用してprepareとbindValueでPDO::PARAM_INTなどと型指定をしてINSERTしているのですが、ネットをいろいろ見てみると「型指定をしてもexecute()時に全ての型は文字列として扱われる」と書いています。 これはデータベースの各カラムの型は無視して全て文字列としてINSERTしているのでしょうか? それともデータベースの型にMySQL側で勝手に変換して値を挿入してくれるのでしょうか? INSERTした数値を含むデータをprepareでSELECTしてexecute()してみると数値を含めて全てのカラムがstringとして取得しています。 MySQL側ではカラムの型をINTやFROATとして定義しても数値を文字列として挿入するとMySQL側も文字列として扱うのですか?それとも数値に変換されて挿入されますか? もし文字列として挿入されたらインデックスに影響しますか? いまいちどうすればいいのかわかりません。 一応 $id = 1; $name = "hoge"; $float = 0.055; $stmt = $dbh->prepare("INSERT INTO REGISTRY (id, name, float) VALUES (:id, :name, :float)"); $stmt->bindValue(:id, $id, PDO::PARAM_INT); $stmt->bindValue(:name, $name, PDO::PARAM_STR); $stmt->bindValue(:float, (string)$float, PDO::PARAM_STR); としています。 あと、PDO::PARAM_FLOATはないみたいで、PDO::PARAM_STRにすべきと書いていますが、このように指定してもMySQL側で勝手にFLOAT型に変換して値をINSERTするのでしょうか? どうぞよろしくお願い致します。
質問日時: 2014/02/17 02:21 質問者: suffre
ベストアンサー
3
0
-
MySQL:文字列の自動収集
以下の様なテーブルとフィールドがあります。 ============= テーブル:words //英単語と意味です フィールド:word(主キー),meaning テーブル:examples //例文です フィールド:word(主キー),example ============= 入っているデータは、 ============= [words] word, meaning -------------- woman,女性 big, 大きい shoes, 靴 [examples] word,example -------------- woman,This woman wears big shoes. ■ ■ ============= exampleテーブルのexampleフィールドの「This woman wears big shoes」に含まれるbigとshoesを 自動的にwordsテーブルから抜き出して■の位置に 【big,This woman wears big shoes.】 【shoes,This woman wears big shoes.】 とexampleテーブルに付与したいのですがなにかいい方法はありますでしょうか。 すでに入っているwomanは抜きたいです。 もしかしてデータベースの構造がおかしいかもしれません。出来ればご享受願えればと思います。
質問日時: 2014/02/15 21:48 質問者: xiusaq
解決済
1
0
-
windows8でXAMPPが利用できません。。
環境 OS:windows8 XAMPP:ver1.7.3 ウィルスソフト:市販のものは使ってません。 状況: 同じPCで以前まで使えていたのですが、windows8の自動更新の影響かわかりませんが、 XAMPPを立ち上げて、Apacheはスタートボタンを押して「Running」のステータスに かわりますが、MySqlはスタートボタンを押して「Running」のステータスに 変わりません。。 MySqlはスタートボタンを押したその後の ステータスは 「MySql started busy...」 となります。 どなたか同様の問題で解決された経験の方がいらっしゃいましたら お知恵をいただければ幸いです。 よろしくお願い致します。
質問日時: 2014/02/15 15:58 質問者: anan19
ベストアンサー
3
0
-
データベースと正規化とINSERT文について
ただいま以下の一つのテーブルを正規化しようとしています。 テーブル:英単語 フィールド:単語、意味1、意味2、意味3、品詞、分類1、分類2、分類3、例文、難易度、ID(主キー・オートインクリメント) これを以下のように分けました。(分類とは単語の分類です。例えば year なら意味は 年 で分類は 時間 とか 単位 とか属性を入れたいのです。) ****** テーブル:英単語 フィールド:単語、意味1、意味2、意味3、分類ID、分類ID、分類ID、例文ID、難易度、ID(主キー・オートインクリメント) テーブル:分類 フィールド:分類名、ID(オートインクリメント 主キー) テーブル:品詞 フィールド:品詞名、ID(オートインクリメント 主キー) テーブル:例文 フィールド:例文、ID(オートインクリメント 主キー) ****** (1)これで正規化できているでしょうか? もしできていないなら、どうすればよいでしょうか? (2)また、仮にこのままデータベースを作るとすると、INSERTの時に英単語テーブルの分類IDに、分類テーブルのIDをひもづけるにはどうしたら良いのでしょうか? INSERT INTO 分類 (分類名) VALUES("時間") のあと、オートインクリメントされたIDを取り出して、英単語テーブルに入れるにはどうしたらいいでしょうか。
質問日時: 2014/02/13 16:39 質問者: xiusaq
ベストアンサー
4
0
-
SELECT文で重複せずに取得するには?
SELECT文で質問があります。 商品情報を格納したテーブルを作成し、「商品名を検索するとその商品番号を取得する」という単純なSELECTですがうまくいきません。 ■tb_items → 商品情報を格納しています。 -------------------------------------------- 商品番号 サイズ 重さ 001 50 120 002 30 200 -------------------------------------------- ■tb_details → 店舗毎の情報を格納しています。 -------------------------------------------- 商品番号 店舗番号 商品名 価格 001 shop_A シャープデジカメ 50000 001 shop_B シャープcamera 56000 002 shop_A パナソニックスマホ 85000 002 shop_B Panasonicスマホ 79000 -------------------------------------------- ここで、「商品名を検索するとその商品番号を取得できる」としたいのですが、例えば「シャープ」で検索すると商品番号001を取得できますが、「sharp」で検索すると当然ですが商品番号001は取得できません。 そこでタグのようなものを登録するテーブルをさらに作成しました。 ■tb_tags -------------------------------------------- タグ 商品番号 sharp 001 カメラ 001 スマートフォン 002 携帯 002 -------------------------------------------- 試しに「sharp カメラ」を検索してみました。SELECT文は以下のようにしました。 -------------------------------------------- SELECT tbI.`商品番号` FROM tb_items AS tbI LEFT JOIN tb_details AS tbD ON tbI.`商品番号` = tbD.`商品番号` LEFT JOIN tb_keywords AS tbK ON tbI.`商品番号` = tbK.`商品番号` WHERE ( ((tbK.`タグ` = 'sharp') OR (tbK.`タグ` = 'カメラ')) OR ( (tbD.`商品名` LIKE '%sharp%') AND (tbD.`商品名` LIKE '%カメラ%') ) ) -------------------------------------------- 取得した結果は、 001 001 というように同じ商品番号を重複して2つ取得してしまいます。 検索を「シャープ camera」にしても重複して2つ取得してしまいます。 やりたいことは、「検索文字列(空白区切りあり)で商品名とタグを検索してヒットした商品番号を重複なしに取得したい」です。 どのようなSELECT文にすれば良いのでしょうか? お手数ですがアドバイスを頂けたらと思います。 どうぞよろしくお願い致します。
質問日時: 2014/02/13 11:34 質問者: suffre
ベストアンサー
1
0
-
phpmyadminで日本語データが文字化け
phpmyadminで日本語のデータだけ文字化けしてしまいます。 phpで作成された掲示板からデータをmysqlに投稿し、そのデータを再度掲示板で表示しています。 投稿・表示するphpファイルはutf8で、mysqlのmy.cnfは以下のようになっています。 --------------- [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 --------------- phpmyadmin(2.11.11)側は、MySQ の接続照合順序:utf8_unicode_ci にしています。 phpmyadminで文字化けしているデータをphpで見ると問題なく表示されてるのが不思議です。 どこが問題なのでしょうか。
質問日時: 2014/02/13 04:18 質問者: feed12
ベストアンサー
1
0
-
内容を削除したときのパフォーマンス
プログラム初心者です 掲示板のレスを削除フラグを立てて後からメンテの時に削除するようにしました 将来行う削除する方法なんですが、daleteで行を削除するのではなく、カラムに入っている内容を削除しただけでもパフォーマンスはよくなりますか?残った行はid番号だけにする予定です 例えば100MBの容量が70MBくらいになるイメージです それともメンテの時に行を削除したほうがいいでしょうか? 大体の経験からの判断でいいのでよろしくおねがいします
質問日時: 2014/02/09 23:46 質問者: flash0
ベストアンサー
3
0
-
削除ふらぐ
プログラム初心者です phpとmysqlで簡単な掲示板を作りました 一つのテーブルでsure_idごとにスレッドをつくり、resu_idでレス番号をつくっています そこで削除フラグがある場合にはそのレスを表示しないようにしたいのです 素人なのでこんな方法しか思い浮かばないのですがこれで大丈夫でしょうか? 5番のスレッドを全て取得し、削除フラグがない行を全て取得 SELECT * FROM bbs WHERE sure_id=5 and dll_flg=0 質問1 削除フラグはどのような立て方が良いでしょうか?0と1でしょうか? 質問2 削除フラグのカラムにもインデックスを張ったほうが速いですか? 質問3 phpでいちいちif文で判定するよりsqlで表示判定したほうが早いですよね? よろしくお願いします
質問日時: 2014/02/08 23:23 質問者: flash0
ベストアンサー
1
0
-
同一のカラム値をもつもの同士の中での連番
こんにちは。 タイトルが上手くまとまっておらず、すみません。 以下のようなことを実現したいと思っております。 カラムc1(INT型)とカラムc2(INT型)をもつテーブルt1があるとします。 「INSERT INTO t1(c1) VALUES(1);」などと実行した場合、自動的にカラムc2が以下のように同一のカラムc1の値同士の中で連番されていくようにするテーブル定義はできないでしょうか。 ↓「SELECT c1, c2 FROM t1 ORDER BY 1 ASC, 2 ASC;」を実行した様子 1,1 1,2 2,1 3,1 3,2 ※ フォントの違いによる形崩れは免れないと思い、CSVのようにカラムの区切りをカンマで、レコードの区切りを改行で表現しています。 言うまでもなく、c1とc2の組は必然的にユニークになります。 ご教授、お願いします。
質問日時: 2014/02/08 09:05 質問者: hrt_shu
解決済
2
0
-
行数の取得
mysql初心者です 行数を取得したいです 処理をすこしでも軽くしたいです このように書くとテーブルの中身は見に行かないらしいのですが SELECT COUNT(*) AS cnt FROM bbs WHEREをつけると中身を見に行きますか? SELECT COUNT(*) AS cnt FROM bbs WHERE sure_id=5 中身を見に行く場合、カラムを指定したほうが早いでしょうか? SELECT COUNT(id) AS cnt FROM bbs WHERE sure_id=5 よろしくお願いします
質問日時: 2014/02/08 02:36 質問者: flash0
ベストアンサー
2
0
-
mysqlのcsvファイル出力について
今jspファイルでボタンを押すとサーバーにあるデータベースの結果をcsvファイルとして保存するファイルを作りました。 今、作業用のパソコンからテラタームを使い、リモート接続で作業をしています。 なので出力するcsvファイルをサーバーの方ではなく、作業用のパソコンに落としたいのですが、方法はないですかね? 今はjspのほうでSELECT * FROM テーブル名 INTO OUTFILE のコマンドをmysqlに送っています。 phpmyadminで接続してそこからcsvファイルを落とすと閲覧しているパソコンに落ちるようになってるのでそ それができたらなと思います。 何かいい方法はないでしょうか? よろしくお願いします。
質問日時: 2014/02/08 01:51 質問者: reimaru9
解決済
2
0
-
MySQL 肥大化したテーブルへのINSERT速度
タイトルの件について、分かる方おりましたらどなたかご教授ください。 [DBサーバ] Linux CentOS 6.4 CPU Xeon core4 SSD 250GB RAM 32GB バージョン情報 MySQL 5.5 tomcat 6 JDK 6 会員データをCSVから大量にUSERテーブルへINSERTする処理を行っています。 また、それに関連するデータも同時にINSERTをします。 (USER_ID を持っている SERVICE_POINTテーブルやADDRESSテーブル) 処理の流れとしては以下となります。 (1) 会員情報の入ったCSVファイルをサーバへアップロード (2) 1でアップロードしたCSVファイルを○○○○件毎に一時ファイルに切り分ける ~~ ここからバックグラウンドで実行 ~~ (3) 2で切り分けたファイルをループで回しながら、メアドの重複やフォーマットエラーなどを判定する (4) 3でエラーがあれば即座にERRORSテーブルにエラー詳細をINSERTし、コミット&continue; (5) 3でエラーがなければUSERテーブル・SERVICE_POINTテーブル・ADDRESSテーブルへINSERT処理 (6) その他関連するテーブルへUPDATE処理 (7) 3に戻る ストレージエンジンは全てInnoDBです。 my.cnfのInnoDBの設定は以下の通りです。 innodb-buffer-pool-size = 24G innodb-log-buffer-size = 8M innodb-log-file-size = 1024M innodb_log_files_in_group = 3 innodb_fast_shutdown = 0 innodb_data_file_path = ibdata1:10M:autoextend innodb_file_io_threads = 4 innodb_change_buffering = all innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 2 innodb_max_dirty_pages_pct = 90 innodb_flush_method = O_DIRECT innodb_lock_wait_timeout = 120 innodb_additional_mem_pool_size = 128M innodb_file_format = Barracuda innodb_file_per_table = 1 なお、ERRORSテーブルのINSERTは非常に速いです。 会員数が全くない状態だとスムーズに登録されていくのですが (1秒に15件程度) テーブルが肥大化して20万件を超えると1秒に1件ほどしかINSERTされません。 この速度を少しでも速くしたいなと思っています。 1件ずつコミットしているのには理由があります。 ただ、1000件ずつコミットしても速度はほぼ変わりませんでした。 こういう場合、やはりパーティショニングを検討しなければならないでしょうか。 よろしければどなたかご教授ください。 以上、よろしくお願いいたします。
質問日時: 2014/02/06 16:03 質問者: chris2525
ベストアンサー
1
0
-
リッチテキストエディッタからの入力内容の保管
WEB上でリッチテキストエディッタで入力した内容を そのままデーターベースに保管したいです。 最大文字列などが想像できませんが、かなり文字数が多くなる場合もあると 考えております。 その場合、保管先になるデーターベースの型と値は何を指定しておくと いいのでしょうか。 ご教授いただけると助かります。 よろしくお願いいたします。
質問日時: 2014/02/05 22:53 質問者: matxx
ベストアンサー
1
0
-
ある時点までの合計を表にするには
たとえば銀行口座に2/4時点で100万円あったとします。 2/10に-10万円 2/25に+20万円 2/27に-1万円 というような感じで、日付と入出金額をDBに入れていきます。 このとき、ある日付時点での残高を表示するにはどうしたらいいでしょうか。 つまり、 2/4 100万円 2/10 90万円 2/25 110万円 2/27 109万円 という結果が得られるようにしたいです。 Excelを使えば簡単ですが、そのほかにもやることがあるのでDBを使っています。
質問日時: 2014/02/04 23:14 質問者: qadaikou
ベストアンサー
1
0
-
途中からプライマリーキーを作成
プログラム初心者です テーブルに途中からプライマリーキーを作成することはできますか? idとゆうカラムを追加で作成して主キーにしようとしたのですがエラーがでます idはint型でテーブルには100行あるのですが全部0になっているのが原因かもしれません このidカラムに1~100まで数字を与える方法はありますか? よろしくお願いします
質問日時: 2014/01/27 22:26 質問者: flash0
ベストアンサー
3
0
-
内部結合のSELECTで取得した配列をわかりやすく
商品情報が入ったテーブルが2つあります。 一つは商品のスペックが入ったテーブル → tb_spec 一つは商品の種類と価格が入ったテーブル → tb_variation tb_spec ---------------- 商品ID, 重量 item001, 100 item002, 150 ---------------- tb_variation ---------------- 色, 商品ID, 価格 赤, item001, 12000 青, item001, 15000 黒, item002, 21000 白, item002, 20000 赤, item002, 23000 ---------------- これを一致する商品IDで内部結合でのSELECTで抽出します。 SELECT s.`商品ID`, s.`重量`, v.`色`, v.`価格` FROM tb_spec AS s INNER JOIN tb_variation AS v ON s.`商品ID` = v.`商品ID` 結果は、 Array( [0] => Array ([商品ID] =>item001 [重量] =>100 [色] =>赤 [価格] =>12000) [1] => Array ([商品ID] =>item001 [重量] =>100 [色] =>青 [価格] =>15000) [2] => Array ([商品ID] =>item002 [重量] =>100 [色] =>黒 [価格] =>21000) [3] => Array ([商品ID] =>item002 [重量] =>100 [色] =>白 [価格] =>20000) [4] => Array ([商品ID] =>item002 [重量] =>100 [色] =>赤 [価格] =>23000) ) というように結果が帰ってきます。 これを、 Array( [0] => Array ([商品ID] =>item001 [重量] =>100 [色] => Array( [赤] => Array([価格] =>12000) [青] => Array([価格] =>15000) ) [1] => Array ([商品ID] =>item002 [重量] =>100 [色] => Array( [黒] => Array([価格] =>21000) [白] => Array([価格] =>20000) [赤] => Array([価格] =>23000) ) ) というように商品ID毎の配列で取得できるSQL文は書けるのでしょうか? 上記と多少配列の構造が変わっても良いのですが、商品ID毎に取得できればと思っています。 どうぞよろしくお願い致します。
質問日時: 2014/01/27 15:03 質問者: fantrax
解決済
2
0
-
Wordpressインストール時のエラー
OS:Windows server2008 SQL:MySQL server Express(WevPlatformにて自動インストール) WebPlatform2.0を使用しWordpressをインストールする際 「手順2/2アプリケーション情報の入力」 から続行を押した時に Unabele to connect to any of the specified MySQL hosts. System.Exceptionの例外がスローされました データベースに接続できません と出てしまいます。 どこに問題があってこのエラーが出ているのでしょうか 解決方法をご教授ください よろしくお願いいたします、。
質問日時: 2014/01/27 12:09 質問者: fuzikurokuro
解決済
1
0
-
1対多結合で多を絞り込み条件とするSQLについて
1対多で結合する場合に、多が絞り込み条件となった場合のSQLについての質問です。 たとえばカスタムテーブルを使ったSELECT文などで、このような絞り込み条件が必要になると思います。 まずカスタムテーブルの具体例として、たとえばユーザーテーブルがあったとします。 [user_table] id=INT //オートインクリメント user_id=VARCHAR //adminなどのユーザーID文字列 user_pass=VARCHAR //パスワードを保存※ハッシュ化した値 user_name=VARCHAR //山田太郎などのユーザー名 user_mail=VARCHAR //ユーザーのメールアドレス user_description=TEXT //ユーザーの自己紹介文 user_created=DATETIME //ユーザーの登録日 とりあえず、上記のようなデータをユーザーの基本データだとします。 このユーザーテーブルから、たとえば名前を元に検索するのは単純です。 たとえばこのような感じでしょうか。 SELECT * FROM user_table WHERE user_name = '山田太郎' このテーブル構造を変更することなくカスタムデータを追加したい(しかも柔軟に)という要望を実現するために、ユーザーカスタムテーブルを作ったとします。 [user_custom_table] id=INT //オートインクリメント relational_id=INT //user_table.idへの参照 custom_name=VARCHAR //カスタムフィールド名 custom_value=VARCHAR //カスタムフィールドの値 custom_name、custom_valueには、たとえばそれぞれ以下のような値が入るとします。 custom_name、custom_value Birthday 、1998/1/1 CompanyName 、○○株式会社 CompanyTel、000-0000-0000 CompanyAddress、東京都千代田区○○-○○ user_custom_table.relational_idはuser_table.idにリレーションしているとすると、INNER JOINして値を取得する方法は判ります。 ※カスタムテーブルに値がない場合という状況は無視できる仕様です。 たとえば、会社住所が東京都で始まるユーザのみを抽出すると、以下のような感じでしょうか。 SELECT user_table.* FROM user_table INNER JOIN user_custom_table ON user_table.id = user_custom_table.relational_id WHERE user_custom_table.custom_name = 'CompanyAddress' AND user_custom_table.custom_value LIKE '東京都%' ただ、この方法だと、誕生日が○月○日以前で、会社名に○○を含んで、会社住所が東京都で始まり…と検索条件が増えていった場合にINNER JOINがどんどん増えていって、いかにも効率が悪いと思えてなりません。 とりあえず適当に書いてみるとして、以下のような感じでしょうか。 SELECT user_table.* FROM user_table INNER JOIN user_custom_table AS custom_1 ON user_table.id = custom_1.relational_id INNER JOIN user_custom_table AS custom_2 ON user_table.id = custom_2.relational_id INNER JOIN user_custom_table AS custom_3 ON user_table.id = custom_3.relational_id WHERE custom_1.custom_name = 'CompanyAddress' AND custom_1.custom_value LIKE '東京都%' AND custom_2.custom_name = 'Birthday' AND custom_2.custom_value < '2001/1/1' AND custom_3.custom_name = 'CompanyName' AND custom_3.custom_value LIKE '%○○%' もっと効率の良い書き方、一般的にはこういう場面ではこんな書き方をするなど、識者の方から教えを請いたくて質問しました。 ※ちなみにDBはMySQLですが、とくにMySQLに限らない方法で答えを頂ける方がありがたいです。
質問日時: 2014/01/27 04:14 質問者: twice_up
ベストアンサー
1
0
-
mysqlについて
mysqlのデータを今csvファイルに保存しようとしているのですが、 データの中にcsvファイルに保存しなくてもいい情報と保存したい情報があります。 例えばデータが 姓 山田 名 太郎 年齢 20 住所 東京 学校 東京大学 だったとします。 そこで 姓と名と年齢だけの情報を保存したいとします select * from テーブル名 where 名前 and 名 and 年齢 INTO OUTFILE "ファイル名.csv" fields terminated by ',' これで保存されると思ったのですが、 保存されたcsvファイルは空白でした。 学校が東京大学の人がデータに5人中3人だとして 東京大学の人のデータを取り出したい場合にwhere 学校 = "東京大学"みたいに使うのだろうと思いました。 自分は全員分のデータの中のここでいう姓と名と年齢だけの情報を保存したいです。 なので姓と名と年齢だけの情報を保存したい場合にはどうしたらいいですか?
質問日時: 2014/01/25 15:26 質問者: reimaru9
ベストアンサー
1
0
-
idとするものをvarcharかintかで速度は?
単純な質問ですみません。 idを例えばアルファベット5~10文字程度にしたVARCHAR(10)とする場合と、tinyintにする場合では検索スピードはどちらが速いのでしょうか? idの種類は多くても10種類くらいです。 レコード数は50万件くらいあります。 アルファベットのidを数値にするとは、例えば apple → 0 orange → 1 banana → 2 というような感じです。 また、idをもしtinyintにした場合、phpMyAdminなどでレコード表を確認した場合、何のidかわかりにくいですが、これは仕方ないのでしょうか?
質問日時: 2014/01/24 17:49 質問者: suffre
ベストアンサー
1
0
-
【mysql】リレーションでパフォーマンスが落ちる
mysqlで SELECT文を作成しています。 諸事情であるテーブルとテーブルを1対1の関係でプライマリーキー同士でつないでいます。 この時、Aというテーブル と Bというテーブルでつないでるとして Aテーブルにあるカラムのみを使ってでソートする場合パフォーマンスは問題なく Bテーブルにあるカラムのみでソートする場合もパフォーマンスに問題はありません。 しかし、Aテーブル Bテーブルのカラムを組み合せてソートすると パフォーマンスが極端に落ちてしまいます。 これを改善する方法はないでしょうか?
質問日時: 2014/01/24 02:04 質問者: yuzuru0024
ベストアンサー
1
0
-
文字数について
プログラム初心者です mysqlのカラム、varchar(255)に実験で270文字HTMLフォームからmysqlに入れてみました そうしたら、255文字しか保存されていませんでした もしかしたら、PHPで文字数制限しなくてもmysql側のカラムの文字数設定だけでいいのではないかと思ってしまいましたがこれだと不具合とかでてきますか? データ型のtextも文字数指定できるのでしょうか? やっぱり、文字数制限はPHPなどでやったほうがいいのでしょうか? よろしくお願いします
質問日時: 2014/01/21 02:54 質問者: flash0
ベストアンサー
2
0
-
プライマリーキー
プログラムど素人です プライマリーキーはつけといたほうがいいでしょうか? プライマリーキーがないとプライマリーキー以外のカラムをselectするとき遅くなるのでしょうか? プライマリーキーのカラム名はid以外でもいいですか? 質問2 phpmyadminからindexを他のカラムにつけた場合はそのカラムにindexつけた後に追加された行も自動的にindexがついていますか? よろしくお願いします
質問日時: 2014/01/19 00:52 質問者: flash0
ベストアンサー
1
0
-
mysqlのsql文について質問です
こんにちは。よろしくお願い致します。 sqlの書き方がわからず質問いたします。 コード10020のaaaaさんについて 年月(ym)別に点数(score)を集計した値と 点数の総合計を一度にまとめて取得したいです。 データの内容は下記のとおりです。 アドバイス頂けますととても助かります。 よろしくお願い致します。 code,name,score,group,ym --------------------------- 10020,aaaa,10,1,201305 10020,aaaa,15,2,201305 10020,aaaa,20,7,201305 10020,aaaa,12,9,201305 10020,aaaa,10,1,201306 10020,aaaa,15,2,201306 10020,aaaa,20,7,201310 10020,aaaa,12,9,201310 10020,aaaa,10,1,201310 10021,bbbb,10,1,201305 10022,cccc,10,1,201305
質問日時: 2014/01/15 12:11 質問者: BottleCap
解決済
2
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【MySQL】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー 1068 (42000): 複数の主キー...
-
mysqlがインストールされているのか...
-
#1062 - '0' は索引 'PRIMARY' で重...
-
テーブル名が可変の場合のクエリの...
-
SQLです教えてください。
-
SQLです教えてくださいお願いします
-
MAMP 99ドル約1.6万円 高いですね
-
SQLです教えてくださいお願いします?
-
SQLでカラムを追加し、条件に合致し...
-
SQLです教えてくださいお願いします
-
(初心者)MySQLやmaraDBで、create t...
-
utf8bomとutf8mb4の違いがいまいち...
-
テーブル:生徒名簿 生徒名簿の項目...
-
mysqlのupdate構文についての質問で...
-
同一日に複数レコードがある場合に...
-
SQLを作ったのですがうまくいきませ...
-
SQLです教えてくださいお願いします...
-
SQLあってますか?こう?
-
SQLです!!教えてください。あって...
-
次の時間帯の勝率の合計を求めるSQL文
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
何にかが違うから エラーなんでしょ...
-
mysqlがインストールされているのか...
-
エラー 1068 (42000): 複数の主キー...
-
#1062 - '0' は索引 'PRIMARY' で重...
-
テーブル名が可変の場合のクエリの...
-
SQLでカラムを追加し、条件に合致し...
-
mysqlの配列データの読み方
-
SQLで漢字名称を都道府県や市区町村...
-
mysqlのupdate構文についての質問で...
-
htmlコードで書かれた表にphpでdbか...
-
SQLを作ったのですがうまくいきませ...
-
【初歩】ラジオボタンをつかったPHP...
-
SQLです教えてください。
-
東京23区を、皇居を中心とした4つ...
-
SQLです教えてくださいお願いします
-
LIMIT で条件を満たしているのにエ...
-
MAMP 99ドル約1.6万円 高いですね
-
〜のような結果を出すためのSQLは以...
-
SQLです教えてくださいお願いします...
-
このSQLあってますか?教えてください
おすすめ情報