回答数
気になる
-
Waiting for table lockエラーについて
MysqlでWaiting for table lock というエラーがでて困っています。 上記のエラーがでて特定のテーブルにアクセスする事ができません。 該当のエラーのIDをKILLしても、そのTableにアクセスが出来ません。 こちらのWaiting for table lockを解除する方法ご存知でしょうか? よろしくお願い致します。
質問日時: 2015/02/04 08:08 質問者: notomofree
ベストアンサー
1
0
-
PHP、MySQL、wordpressの事で教えて
CentOS 5.11でwordpress4.0.1を動かす為にPHPバージョン5.5.20、MySQLサーバーバージョン5.5.41を入れましたが、wordpressの設定画面が開かず「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」と表示されて、どうしたら良いか判りません。 詳しい方、この様な場合はどの様に対処したら良いか教えて下さい。 宜しくお願い致します。
質問日時: 2015/01/25 12:58 質問者: pekochan18
解決済
1
0
-
アンケート結果を集計するSQLを教えて下さい
アンケート結果を集計する効率の良いシンプルなSQLを教えて下さい。 MySQLで、以下の状態です。 テーブル名:hoge カラム:id,kbn id...auto kbn...1~5 欲しい結果は、以下の状態です。 順位,kbn,count 1位,5,60ポイント 2位,3,45ポイント 2位,1,45ポイント 4位,4,30ポイント 5位,2,10ポイント ※位やポイントはプログラム側で付与するので不要です。 2位の様に同点の場合は同じ順位を表示し、3位を飛ばし順位を表示させたく思います。 どうぞ、よろしくお願い致します。
質問日時: 2015/01/19 10:59 質問者: RYO-88
ベストアンサー
2
0
-
前のidをコピーするSQL文
MySQLを使って管理画面を作っております。 $sql='INSERT INTO players(name,price,position_id) VALUES(?,?,?)'; という文で使ったidをコピーしてから次のINSERTの文でそのidの番号を使って別テーブルのカラムにその番号をINSERTするしくみを作りたいのですがなかなか上手くいきません。 var_dump($last_id);では番号がコピーされているのですが、INSERTができません。 いつもお世話になってしまい大変恐縮なのですが、どなたかご教授いただけないでしょうか?よろしくお願い致します。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../../xxxxx/team.css"/> <title>選手追加完了</title> </head> <body> <div id="main"> <?php $pro_name=$_POST['name']; $pro_price=$_POST['price']; $pro_position_id=$_POST['position_id']; $pro_team=$_POST['team_name']; $pro_name=htmlspecialchars($pro_name); $pro_price=htmlspecialchars($pro_price); $pro_position_id=htmlspecialchars($pro_position_id); $pro_team=htmlspecialchars($pro_team); $dns = "mysql:host=localhost; dbname=player;charset=utf8"; $dns_id = "xxxxx"; $dns_pw = "xxxxxxx"; try { $conn = new PDO($dns, $dns_id, $dns_pw, array(PDO::ATTR_EMULATE_PREPARES => false)); } catch (Exception $e) { echo 'ERROR: ' . $e->getMessage(); die(); } try { //トランザクションを開始する。オートコミットがオフになる $conn->beginTransaction(); //処理その(1) $sql='INSERT INTO players(name,price,position_id) VALUES(?,?,?)'; $stmt=$conn->prepare($sql); $data[]=$pro_name; $data[]=$pro_price; $data[]=$pro_position_id; $stmt->execute($data); //直近id取得 $last_id_sql = "SELECT LAST_INSERT_ID() as id"; $stmt = $conn->prepare($last_id_sql); $stmt->execute(); $last_id = $stmt->fetch(PDO::FETCH_ASSOC); $stmt->closeCursor(); //確認var_dump($last_id); //処理その(2) $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql2='INSERT INTO team(team_id,team_name) VALUES(?,?)'; $stmt=$conn->prepare($sql2); $data2[]=$pro_team; $data2[]=$last_id; $stmt->execute(array($last_id,$pro_team)); $stmt->closeCursor(); //確認var_dump($last_id); //変更をコミットする $conn->commit(); } catch(PDOException $e){ //変更をロールバックする $conn->rollBack(); echo 'ERROR:' . $e->getMessage(); } // 切断 $conn = null; print $pro_name; print'を追加しました。<br />'; ?> <a href="xxxxx">戻る</a> </div><!--main--> </body> </html>
質問日時: 2015/01/14 20:59 質問者: sinto58167
ベストアンサー
4
0
-
MySQL SQL文 仮想カラムに番号を振りたい
f1、id、name、price の株価データがhistoryテーブルに入っています。 f1は発注番号です。「id,name=株券」は複数あるため、ひとつの株券だけを見ると発注番号はランダムになります。 SELECT * FROM (SELECT f1,id,name,price FROM history WHERE id = 2001 ORDER BY f1 DESC limit 0,10) as AA ORDER BY f1 ASC 上記のSQL文により、株ID=2001番の直近10回の売買価格(推移)を取得することが可能です。 f1 id name price 14585 2001 日本製粉 521 14595 2001 日本製粉 523 14607 2001 日本製粉 527 14684 2001 日本製粉 524 14705 2001 日本製粉 520 14771 2001 日本製粉 519 14795 2001 日本製粉 518 14800 2001 日本製粉 516 14804 2001 日本製粉 517 14882 2001 日本製粉 519 やりたいこと この直近の取引10回に関し、若い順に必ず0から9の番号を振る関数(下記の仮想カラムzeroを追加する)を作りたいと思っています。 f1 id name price zero 14585 2001 日本製粉 521 0 14595 2001 日本製粉 523 1 14607 2001 日本製粉 527 2 14684 2001 日本製粉 524 3 14705 2001 日本製粉 520 4 14771 2001 日本製粉 519 5 14795 2001 日本製粉 518 6 14800 2001 日本製粉 516 7 14804 2001 日本製粉 517 8 14882 2001 日本製粉 519 9 株によっては10回未満の取引のものもあり、その場合はたとえば4回しか取引のない株の場合はzeroの値は0から3を振ることになります。 SELECT * FROM (SELECT f1,id,name,price FROM history WHERE id = 2001 ORDER BY f1 DESC limit 0,10) as AA ORDER BY f1 ASC を改良して作ろうとしましたがいいアイデアが浮かびません。 どなたか助けて頂けませんでしょうか? よろしくお願いいたします。
質問日時: 2015/01/11 13:53 質問者: tajix14
ベストアンサー
2
0
-
Updateの複数テーブル条件時のLIMIT実行
すみません、MySQLのSQL文で教えてください。 以下のSQL文を実行すると UPDATE overflag c, asinprice d SET d.priceCheckUS = TRUE WHERE c.asin=d.asin AND c.priceOverUS=0 LIMIT 1; ERROR 1221 (HY000): Incorrect usage of UPDATE and LIMIT というエラーが出力されます。 UPDATE asinprice d SET d.priceCheckUS = TRUE WHERE d.asin='111' OR d.asin='000' LIMIT 1; は実行できました。 複数テーブルだと実行できないように理解しましたが、何が問題か教えてください。 よろしくお願いします。
質問日時: 2015/01/06 16:43 質問者: yamakiyo2
ベストアンサー
1
0
-
SQLの2行取得
こんばんは PHP+MySQLで1月~12月までのテーブルがあるのですが 1行目から12月のデータを1行目から1月のデータを取得して 並べて表示したいのですが、どういうコードを書けばいいか すみませんが、教えてください。 お願いします。
質問日時: 2014/12/29 16:40 質問者: IWAYOSHI_2082
解決済
5
0
-
Read Onlyで無かった
今までの経緯は以下です: http://oshiete.goo.ne.jp/qa/8863196.html http://oshiete.goo.ne.jp/qa/8863915.html 実は、当該問題が消えました。 特段、対処はしていません。 その後、問題発生前と同様に使っていました。 そして先ほど、同問題が発生しました。 前回までの助言を参照し、データベース本体を発見しました。 C:>dir "C:\Program Files\MySQL\MySQL Server 5.0\data\XXX" /B db.opt dic.frm dic.MYD dic.MYI list.txt dic.MYDとdic.MYIの2つだと思われます。 そして、その両方が読み込み専用で無いことが分かりました。 もう殆ど諦めていますが、何か対処方法があってら教えて下さい。
質問日時: 2014/12/27 09:03 質問者: remokon
解決済
1
0
-
select文の記述について
select文の記述について質問させていただきます。 下記のデータベースのテーブルの先頭からnumberを条件として 2名分のデータをselect文にて抽出したいと思っております。 (numberが重複し、重複数も異なるデータとなります。) select文の記述をどのようにするか教えていただければと思っております。 よろしくお願いいたします。 データベースのテーブル +——+—————+—————+————+ | id | name | number | score | +——+—————+—————+————+ | 1 | tanaka | 358 | 98 | | 3 | tanaka | 358 | 23 | | 4 | tanaka | 358 | 45 | | 11 | yamada | 126 | 63 | | 17 | yamada | 126 | 77 | | 23 | suzuki | 274 | 36 | | 45 | suzuki | 274 | 16 | | 59 | suzuki | 274 | 89 | | 73 | suzuki | 274 | 75 | | 80 | hanako | 89 | 24 | | (以下続く) | +——+—————+—————+————+ 抽出結果 +——+—————+—————+————+ | id | name | number | score | +——+—————+—————+————+ | 1 | tanaka | 358 | 98 | | 3 | tanaka | 358 | 23 | | 4 | tanaka | 358 | 45 | | 11 | yamada | 126 | 63 | | 17 | yamada | 126 | 77 | +——+—————+—————+————+
質問日時: 2014/12/25 21:34 質問者: kondo3069
ベストアンサー
3
0
-
MySQLのインストール方法について
Ruby on RailsのデータベースとしてMy SQLを使いたいと思っています。 ですが、現在持っている本ではインタフェースが変わっているのか上手くいかないので御教示をお願いします。 特にConnectorとかがよく分かりません。 そこで一からMySQLをインストールし直そうと思っています。 環境は、 ・Windows7 32ビット ・Rails 3.2.19 ・ruby 1.9.3p545 (2014-02-24) [i386-mingw32] となっております。 宜しくお願い致します!
質問日時: 2014/12/21 02:31 質問者: totti1041
解決済
1
0
-
windows上のphpmyadminで文字化け
windows7上のphpmyadmin(xamppについてくるもの)で、行を挿入しようとしたら、 Warning: #1366 Incorrect string value: '\xE3\x81\xAF\xE3\x81\x98...' for column 'note' at row 1 と言われてしまいまして、行を表示させてみると、マルチバイトのところが、?????と表示されてます。 これは、どうすれば対応できるのでしょうか? よろしくお願い申し上げます。
質問日時: 2014/12/20 12:07 質問者: dicemiyagawa
ベストアンサー
1
0
-
パーミッション...の解説をお願いします
質問した内容は以下にあります。 http://oshiete.goo.ne.jp/qa/8863196.html 先ほど、指示されたホームページに行ったら、以下の内容が表示されるようになっていました。 「Table '○○○' is read only」 4.パーミッションを660に chmod 5.オーナーをmysqldに chown 6.グループ権限をmysqldに 7.再起動 残念ながら、上記の4,5,6とも具体的な作業内容が分かりません。 詳しい方、解説をお願いします。
質問日時: 2014/12/19 20:03 質問者: remokon
ベストアンサー
3
0
-
ロックテーブルサイズ超えのエラー対処
“ERROR 1206 (HY000): The total number of locks exceeds the lock table size”エラーが発生する場合の対処方法について教えてください。 /etc/my.cnfの“innodb_buffer_pool_size”を大きくするのが解決策ですので innodb_buffer_pool_size = 2G のように最大値に変更してみましたが、解決しませんでした。 一応、 max_connections も減らしてみましたが、解決しません。 PHPからMySQLにコネクションを接続し続けて切断するような処理はしていませんが、問題ありますでしょうか?(最初にmysql_connectで接続し、プログラムが終了するまで、何回もmysql_queryでSQL文(SELECTやUPDATE等)を実行しています。) 一概に言えませんが、データベースをバックアップでテキストで出力しても、300Mbyteくらいのデータですが、2Gのメモリを使うのでしょうか? 物理メモリを増やして innodb_buffer_pool_size を増やすしか解決方法がないのかご教授頂きたいです。 (ロックするテーブルは同時に1個しかしていないです。) 詳細な内容は提示していないので、わかりにくいですが、ご指摘頂ければ提示します。 設定や状態確認や見ておくべき点などが提案ベースでも教えて頂ければ幸いです。 すいませんがよろしくお願いします。
質問日時: 2014/12/15 13:04 質問者: yamakiyo2
ベストアンサー
2
0
-
カラム名の付け方について
このジャンルでお願いします。 例えば次のようなアカウント情報を格納するテーブルがあったとして CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(64), email varchar(64), password varchar(64), PRIMARY KEY(id) ); idカラム名を「id」か「user_id」にするか悩んでいます。 自分としては「id」のままで良いと思っているのですが、 参考書や他の方のやり方を見てると「user_id」のようにしてる方もいます。 「user_id」にすることによってSQL文を見た時にも何のidかすぐ分かるし、 USING句を使えるなどのメリットがあるのでたしかにこちらの方が良いかなぁとは思うのですが、 「user_id」にするなら統一性をもたせるために「name」も「user_name」にするのか、 「email」も「user_email」にするのか、などキリがないというか・・・ そういう理由もあって自分としては「id」のままなのですが、 みなさんはどちらのやり方をされているのでしょうか?
質問日時: 2014/12/15 00:56 質問者: takagoo100
解決済
2
0
-
作ったはずのDBがphpMyAdminで見られない
当方Macユーザです。 ターミナル(≒コマンドプロンプト)でスーパーユーザで作ったデータベースが、phpMyAdmin(以下Admin)で見られません。 Adminでは、pmaというユーザにすべての権限を与え、このユーザでデータベースを閲覧しています。 ターミナルにおいて、pmaでログインしてshow databases;をすると、該当のデータベース名が表示されているので、ターミナルでは見られるのですが…。 OpenPNEのメンバー管理をしたいので、ターミナル上では操作したくありません。どうかAdminでデータベースが見られるよう、お知恵をお貸しください。
質問日時: 2014/12/11 08:58 質問者: krkrtk
解決済
1
0
-
閉包テーブルのノードの移行について
このジャンルでお願いします。 次のようなテーブルで CREATE TABLE IF NOT EXISTS item ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO item (name) VALUES ('item1'); INSERT INTO item (name) VALUES ('item2'); INSERT INTO item (name) VALUES ('item3'); INSERT INTO item (name) VALUES ('item4'); INSERT INTO item (name) VALUES ('item5'); INSERT INTO item (name) VALUES ('item6'); CREATE TABLE IF NOT EXISTS treepath ( ancestor_id int(11) NOT NULL, descendant_id int(11) NOT NULL, FOREIGN KEY (ancestor_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (descendant_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(ancestor_id, descendant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 1); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 2); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 3); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 4); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 5); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 6); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 2); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 4); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 5); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 6); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (3, 3); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (4, 4); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (4, 6); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (5, 5); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (6, 6); item1┬item2 │ ├item4 │ │ └item6 │ └item5 │ └item3 を item1┬item2 │ │ │ └item5 │ └item3 └item4 └item6 のようにitem4以下のノードをitem3の下に移したいのですが、 その場合のtreepathテーブルの更新はどのようなSQL文にすれば良いのでしょうか?
質問日時: 2014/12/10 18:36 質問者: takagoo100
ベストアンサー
4
0
-
AWS別インスタンス内のMySQLデータ移行
AWSにあるデータベースをまるごと移行する場合、ローカルにエクスポートしないで移行できる方法があれば教えてください。 AWSは別アカウント、別インスタンスとなります。 よろしくお願いします。
質問日時: 2014/12/09 10:35 質問者: q_ta
ベストアンサー
1
0
-
別々のテーブルで共通のid使う
一つのページから別々のテーブルにデータをINSERTしたいのですが、"id"と"number"は同じ値でそれぞれのテーブルにいれたいのですが、どうやってやるのでしょうか? 下のPHPのコード(一部)でデータを流してみたのですが、このままやると、もしデータに不具合があって片方だけ登録されないことがあると、一方は登録されて、一方は登録されないという事態が発生してしまい、"id"が違う番号で登録されてしまう可能性があります。 id int(8) NOT NULL AUTO_INCREMENT で"id"は作りました! $insertSQL1 = sprintf("INSERT INTO tbl1 (id, number, name, price) VALUES (%s, %s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['number'], "text"), GetSQLValueString($_POST['name'], "text"), GetSQLValueString($_POST['price'], "int")); $insertSQL2 = sprintf("INSERT INTO tbl2 (id, number, ename, eprice, extra) VALUES (%s, %s, %s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['number'], "text"), GetSQLValueString($_POST['ename'], "text"), GetSQLValueString($_POST['eprice'], "int"), GetSQLValueString($_POST['extra'], "text")); 別々のテーブルで共通のidを使う方法はないでしょうか? phpMyAdminのSQLを使ってます。 回答よろしくおねがいします!
質問日時: 2014/12/08 13:00 質問者: soccerrlove
ベストアンサー
4
0
-
SQLのコマンドでif構文
PHPMyAdminのSQLのコマンドで、 もしdata001がNullだったら、data001に"1"というデータをいれる。 もしdata001がNullじゃないかつdata002がNullだったら、data002に"1"というデータをいれる。 このようなSQLのコマンドはどうやって打つのでしょうか。 回答よろしくおねがいします!
質問日時: 2014/12/04 23:07 質問者: soccerrlove
ベストアンサー
3
0
-
SELECTした値との比較
SELECT (`総額` / `個数`) FROM tb_item で`総額`を`個数`で割った単価(のような)値が取得できるものとします。 このとき、この「計算で出た単価」と「10,000という値」を比較して大きいほうの値を返すクエリはどのように書くのでしょうか? なんとなく、 SELECT MAX(`総額` / `個数`, 10000) FROM tb_item のような感じで取得できるような関数を探していますが、MAXだと列の中で最大値を取得してしまうので渡しが使いたい内容と違います。 サブクエリを使わずになるべく簡潔に書く方法を知りたいです。 どうぞよろしくお願い致します。
質問日時: 2014/11/20 16:41 質問者: suffre
ベストアンサー
2
0
-
MySQL 条件での絞込みがうまくいきません
下記の質問をさせていただき、解決いたしましたが、それに関連して新たなご質問です。 http://oshiete.goo.ne.jp/qa/8830319.html 上記質問内容は、 以下のようなデータから、「結果」のような形でデータを取り出したいというもので、「いただいたご回答」の形で一旦解決しました。 usr テーブル +--------+------+ | usr_id | name | +--------+------+ | 1 | 太郎 | | 2 | 二郎 | | 3 | 花子 | +--------+------+ usr_trm テーブル +--------+--------+ | usr_id | trm_id | +--------+--------+ | 1 | 1 | | 1 | 3 | | 1 | 4 | | 2 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 2 | +--------+--------+ cat テーブル +--------+------+ | cat_id | name | +--------+------+ | 1 | 性別 | | 2 | 部署 | +--------+------+ trm テーブル +--------+--------+------+ | trm_id | cat_id | name | +--------+--------+------+ | 1 | 1 | 男性 | | 2 | 1 | 女性 | | 3 | 2 | 総務 | | 4 | 2 | 経理 | +--------+--------+------+ 結果 +--------+------+------+------+ | usr_id | name | cat1 | cat2 | +--------+------+------+------+ | 1 | 太郎 | 1 | 3,4 | | 2 | 二郎 | 1,2 | 3 | | 3 | 花子 | 2 | | +--------+------+----- +------+ いただいたご回答 select t1.usr_id,t3.name ,group_concat(if(cat_id=1,t1.trm_id,null)) as cat1 ,group_concat(if(cat_id=2,t1.trm_id,null)) as cat2 from usr_trm as t1 inner join trm as t2 on t1.trm_id=t2.trm_id inner join usr as t3 on t1.usr_id=t3.usr_id group by usr_id さらにそこから、例えば「総務に所属する人をランダムにn件」という形で絞り込もうと思い、 WHERE t2.trm_id=3 と ORDER BY RAND() LIMIT 10 を追加したところ、条件通り抽出はされるのですが、結果の「cat1」「cat2」に他のカテゴリーの値が入らなくなりました。 WHERE t2.trm_id=3 を消すと「cat1」と「cat2」に値が入ってきます。 「cat1」と「cat2」に全ての値が入った状態で絞込をするために、どのようにすればよいかわかりません。 アドバイスをいただけると幸いです。
質問日時: 2014/11/20 14:42 質問者: sr-ki
ベストアンサー
1
0
-
MySQL文字化け(サイト上のみ)
MySQLを使用したホームページを運用しているのですが、このたびホスティングサーバーを変更する予定で、新しい移行先のホスティング側に、サイトデータ・SQLデータを移行しましたが、データベースを読み込む部分だけ文字化けして表示されてしまいました。 ※日本語だけすべて???で表示されてしまいます。 phpMyAdmin上で見ると、正常にデータベース内容の日本語は表示されています。 照合順序の文字コード変更などをぐぐって作業してみましたが、解決できません。 よろしくお願い致します。
質問日時: 2014/11/20 11:07 質問者: blueskyman
ベストアンサー
2
0
-
一致するデータのみ削除したい
下記のような2つのテーブルがあり、 仕入れテーブルから、2014/1/2にBさんが仕入れたデータを 削除したいのですが、SQLが分かりません。 どのようなSQLにすると実現することができるでしょうか。
質問日時: 2014/11/19 18:33 質問者: ekekojr
ベストアンサー
6
0
-
MySQL この場合どう書けばよいでしょうか?
以下のようなデータがあります。 このデータから最後の「結果」のような形でデータを取り出したい場合、どのようにすればよいでしょうか? cat1とcat2を分けない形はgroup_concatを使ってできたのですが、カテゴリーごとに分けて取得したいです。 usr テーブル +--------+------+ | usr_id | name | +--------+------+ | 1 | 太郎 | | 2 | 二郎 | | 3 | 花子 | +--------+------+ usr_trm テーブル +--------+--------+ | usr_id | trm_id | +--------+--------+ | 1 | 1 | | 1 | 3 | | 1 | 4 | | 2 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 2 | +--------+--------+ cat テーブル +--------+------+ | cat_id | name | +--------+------+ | 1 | 性別 | | 2 | 部署 | +--------+------+ trm テーブル +--------+--------+------+ | trm_id | cat_id | name | +--------+--------+------+ | 1 | 1 | 男性 | | 2 | 1 | 女性 | | 3 | 2 | 総務 | | 4 | 2 | 経理 | +--------+--------+------+ 結果 +--------+------+------+------+ | usr_id | name | cat1 | cat2 | +--------+------+------+------+ | 1 | 太郎 | 1 | 3,4 | | 2 | 二郎 | 1,2 | 3 | | 3 | 花子 | 2 | | +--------+------+----- +------+
質問日時: 2014/11/19 14:33 質問者: sr-ki
ベストアンサー
1
0
-
列数が多いと結果が行単位に改行されて見にくい
コマンドプロンプトで「SELECT * FROM testtable」などとやったときに、列数が多いと結果が行単位に改行されて見にくい。 改行させない方法ってありませんか? あるいはコマンドプロンプト自体の幅を広げる方法とかありませんか? この質問ここではマズかったかな?
質問日時: 2014/11/13 10:41 質問者: tasketeqq1
ベストアンサー
1
0
-
my sqlで文字化け
お世話になります。 my sqlのテキスト欄ですが、以下のような文字化けになってしまいました。 ¤¦¤´¤¶¤¤¤Þ¤¹¡£<br />¤è¤¤¤È¤³¤í... このような文字化けはどうやったら直るのでしょうか? 日本語データーがすべてこのようになってしまいました。 ヒントのような事でも良いのでどうか回答の程よろしくお願い致します。
質問日時: 2014/11/12 12:07 質問者: evolver
ベストアンサー
1
0
-
historyテーブルから一意のデータ取得
Mysqlのデータベースの中にhisotryテーブルを作成しています。 その中にはヒストリーIDと顧客IDとログの内容とタイムスタンプが入っています。 このテーブルから顧客ID毎の一番古いタイムスタンプを取得したいのですが、 どうすればよいのかわかりません。 よろしくお願いします。
質問日時: 2014/11/07 15:08 質問者: taro0714
解決済
1
0
-
phpMyAdminのエクスポートについて
phpMyAdminでテーブルをエクスポートして、違うテーブルにインポートしていれたいのですが、sqlファイルでエクスポートしようとすると、自動でWHEREの中身がid = "1234"とかになってしまって、勝手にidがひも付けされてしまいます。おそらくその原因はプライマリーキーだからなのでしょうが、WHEREの中身をdata1 = "23456"みたいにidではない違うカラムにひも付けすることはできるのでしょうか? data1をプライマリーキーにしようとしてもできませんでした(重複してないはず。) 回答よろしくお願いします!
質問日時: 2014/11/05 19:29 質問者: soccerrlove
解決済
2
0
-
MySQLでName=とValue=の同時指定検索
TableName = key_table ID, GroupID, Key(文字列型), Value(文字列型) 1, 1, 'start_date', '2014-11-05' 2, 1, 'end_date', '' 3, 2, 'start_date', '2014-11-05' 4, 2, 'end_date', '2014-12-05' 5, 3, 'start_date', '2014-4-05' 6, 3, 'end_date', '' start_dateが2014-11-05で、end_dateが''か未来にセットされているGroupID1とGroupID2を検索するSQLはどういう方法がありますでしょうか? SELECT GroupID from key_table where (Name='start_date' AND Value = '2014-11-05') AND (Name='end_date' AND (Value = '' OR end_date > '2014-11-05') な感じでやってみようと思ったのですが、動作しません。 このテーブル構造でどうしても検索しないといけません。 以上、よろしくお願いします。
質問日時: 2014/11/05 16:17 質問者: mkokwave
解決済
2
0
-
MySQLについての質問です
毎回お世話になっています。 今回も知恵を頂けたらありがたいです。よろしくお願い致します。 下記のようなプログラムを組んだところ、ページを開いたらすぐ全データがが出てくる状態になっています。ページを開いても何もデータが出てこない状態にして検索してからデータが出てくるようにするにはどのように書き換えれば良いのでしょうか? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>リーグデータ</title> <link rel="stylesheet" type="text/css" href="../common/style.css"/> </head> <?php error_reporting( E_ALL ^ E_NOTICE ); ?> <body id="list"> <div id="main"> <form name="search_form" action="player_list.php" method="post"> <input type="hidden" name="cmd" value="search" /> <table> <tr> <th class="th_top">選手名</th> <td class="td_top"> <input type="text" name="name" size="30" value="<?php echo $_POST['name'] ?>"> </td> </tr> <tr> <th>チーム名</th> <td> <input type="checkbox" name="team_id[]" value="1" <?php if (isset($_REQUEST['team_id']) and in_array('1',$_REQUEST['team_id'])) print 'checked'; ?>/> 名古屋 <input type="checkbox" name="team_id[]" value="2" <?php if (isset($_REQUEST['team_id']) and in_array('2',$_REQUEST['team_id'])) print 'checked'; ?>/> 徳島 <input type="checkbox" name="team_id[]" value="3" <?php if (isset($_REQUEST['team_id']) and in_array('3',$_REQUEST['team_id'])) print 'checked'; ?>/> 千葉 <input type="checkbox" name="team_id[]" value="4" <?php if (isset($_REQUEST['team_id']) and in_array('4',$_REQUEST['team_id'])) print 'checked'; ?>/> 浦和 <input type="checkbox" name="team_id[]" value="5" <?php if (isset($_REQUEST['team_id']) and in_array('5',$_REQUEST['team_id'])) print 'checked'; ?>/> 磐田<br /> </td> </tr> <tr> <th class="th_middle"> ポジション </th> <td class="td_middle"> FW MF DF GK </td> </tr> </table> <p> <input type="submit" value="検索"> <input type="reset" value="リセット"> </p> </form> <?php try { $dsn = 'mysql:dbname=xxxxx;host=localhost'; $user = 'xxxxx'; $password = 'xxxxxx'; $dbh = new PDO($dsn,$user,$password); $dbh->query('SET NAMES utf8'); $sql = 'SELECT code,name,team_name,price,position,gazou FROM mst_player_market WHERE 1'; $stmt = $dbh->prepare($sql); $stmt->execute(); $dbh = null; if(isset($_POST['name'])) { $name = htmlspecialchars($_POST['name']); print($name); } if(isset($_POST['name'])) { if(!$_POST['name']==true){print ''; }else{ $sqlN ='code IN (SELECT code FROM mst_player_market where name LIKE ("%'.$_POST['name'].'%"))'; $sql.=' and ('.$sqlN.')'; } } if(isset($_POST['team_id'])and is_array($_POST['team_id'])){ $ary = array_filter($_POST['team_id'], function($v) {return is_numeric($v);}); $sqlA = 'code IN (SELECT playerid FROM team WHERE team_id IN ('.implode(',', $ary).'))'; }else{ print ''; $sqlA = ' 1 '; $flag=false; } $sql.=' and ('.$sqlA.')'; if($flag) $sql.="AND 0 ";; //参考 print $sql."<br>"; //実行 $pdo = new PDO($dsn,$user,$password); $stmt = $pdo->prepare($sql); $stmt->execute(); //画像処理 $rows=array(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $rows[]=$row; }; //参考SQL文表示 print_r($rows); print'選手一覧<br /><br />'; print'</form>'; } catch(Exception $e) { print'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); } ?> <?php foreach((array) $rows as $row ){ ?> <tr> <td><img src="../player/<?php print( htmlspecialchars( $row["gazou"], ENT_QUOTES )); ?>" /></td> <td><?php print( htmlspecialchars( $row["team_name"], ENT_QUOTES )); ?></td> <td>\<?php print( htmlspecialchars( number_format( $row["price"] ),ENT_QUOTES ) ); ?></td> <td> <?php print( htmlspecialchars( $row["name"], ENT_QUOTES ) ); ?> </td> <td> <?php print( htmlspecialchars( $row["position"], ENT_QUOTES ) ); ?> </td> </tr> <?php } ?> </table> </div> <!------------mainのdiv--------------> </body> </html>
質問日時: 2014/11/04 18:34 質問者: sinto58167
ベストアンサー
3
0
-
SQLの統合コマンドについて
phpMyAdminを使ってます。一つのデータベースに入ってる二つのテーブルを統合するため、機能でいうとFULL OUTER的なのがやりたいのですがphpMyAdminがそれをサポートしていないので、代わりにUNIONを使ってやろうと思ったら、二つのテーブルのカラムの数と型が同じでないとできないらしく、そこで止まってしまってるのですが、どうにかできるコードはないでしょうか? もともとは日本語のデータベース(1)と英語のデータベース(2)で分けていたのですが、英語(2)では入れなくてもいいデータがたくさんあり、カラムの数が2倍くらい変わってしまっているので、今から英語(2)の方を無理矢理日本語(1)に合わせるとなるとなんかデータが変になりそうなのでそれはまだやってないんですが。←無理矢理合わせるのはどうにも方法がなくて最終手段としてやりたいです。 回答よろしくおねがいします。 何か抜けている点があったら言ってください!
質問日時: 2014/11/04 18:08 質問者: soccerrlove
ベストアンサー
1
0
-
LinuxユーザーとMySQLユーザの関係
VPSで色々とためしてみているのですが、どうもユーザーとか権限とかよく分かりません。 「Linux自体のユーザー」と「MySQLのユーザー」との間には何か関係はあるのでしょうか? うまく言えませんが、例えば「MySQLのユーザー」は「Linux自体のユーザー」になってなければならない---なんてことです
質問日時: 2014/11/03 15:30 質問者: tasketeqq1
ベストアンサー
8
0
-
MySQLのrootのパスワードを忘れてしまった
PCに数年前に導入したMySQLのrootのパスワードを忘れてしまいました。 どこかに書いておいたはずなのですが、思い出せません。 rootのパスワードを調べる方法、または不明のまま新しいパイワードに変更する方法はあるでしょうか。
質問日時: 2014/10/31 17:09 質問者: tasketeqq1
ベストアンサー
2
0
-
データベースのデータ型に関しまして
現在、レンタルしているサーバのPHPmyAdminにて、データベースを作成しました。 データベースのエンジンはMyISAMになっており、InnoDB型がいいため、 テーブルの作成時にInnoDB型に設定をしました。 すると、構造タブでみるとデータベース:MyISAM テーブル:InnoDB となっておりますが、テーブルはInnoDBとして扱われているという認識でいいのでしょうか。 勉強中のため、詳しい方がおりましたら、教えていただけると助かります。
質問日時: 2014/10/24 11:22 質問者: matxx
ベストアンサー
1
0
-
SELECT時の行ロックの必要性について
SELECT ~ FOR UPDATEやSELECT ~ LOCK IN SHARE MODEという行ロックがあり、この件について解説しているサイトをいろいろ見ているのですが、振る舞いが複雑だということはわかりました。 しかしそもそもなぜSELECTで行ロックするのか、運用上でどんなときに使うのかを解説しているサイトは見当たりませんでした。 私は、SELECTするときは単に SELECT * FROM tb_a WHERE id = 1; としか記述していません。 質問1. なぜSELECTするのにトランザクションが必要なのでしょうか?運用上でどんなときにSELECTでトランザクションを使うのでしょうか?よく解説サイトには、 BEGIN; SELECT * FROM tb_a WHERE id = 1 FOR UPDATE; COMMIT; と書いています。SELECTするのに行をロックする必要性がいまいちわからないです。 質問2. トランザクションを開始したときにロックがかかるのではないのでしょうか?つまりBEGIN;でロックがかかるわけではないのですか?SELECTのクエリーにFOR UPDATEと書くということはこのSELECTのコードが実行された時点でロックがかかるのでしょうか? 質問3. FOR UPDATEやLOCK IN SHARE MODEというのはSELECTにしか使えないのか、もしくはSELECTだから意味があるのでしょうか?UPDATEやDELETEは単にBEGINE;とCOMMIT;で囲えばいいだけですよね? 質問4. 以下のようなコードを解説しているサイトがあります。 BEGIN; SELECT * FROM tb_a WHERE id = 1; COMMIT; SELECT文にはFOR UPDATEも書いていないのですが、これは何を意味するのでしょうか?つまり、SELECTするのになぜトランザクションを実行するのでしょうか? 一番知りたいのは運用上どのような場合にSELECTでトランザクションを使って行ロックするのか、ということです。 どうぞよろしくお願い致します。
質問日時: 2014/10/23 21:05 質問者: suffre
ベストアンサー
4
0
-
phpでnot null、a_iでテーブル作成
PHPで、以下のようなソースで、存在しているデータベースtestに接続し、もしない場合、name_listというテーブルを作り、1カラム目をカラム名がnoで、int型でnot null auto_incrementにして、2カラム目をカラム名がnameで、not nullで作りたいのですが、うまくテーブルが作られません。 どうすればうまく作られるか教えてください。 <?php try{ $pdo = new PDO('mysql:dbname=test; host=localhost; charset=utf8', 'root'); $st = $pdo->prepare("create table if not exists name_list (no int(100) not null auto_increment, name varchar(100) not null);"); $st->execute(); }catch(PDOException $e){ print('Error:'.$e->getMessage()); die(); }
質問日時: 2014/10/19 18:31 質問者: h_mp
ベストアンサー
5
0
-
ドメインとサーバーの勉強について
独自ドメインを取得し、Wordpressサイトを開こうと考えておりますが、分からないことがたくさんある上、自分が何を知らないのかも知らないので難儀しております。 1. ドメインをGodaddyなどの会社から取得し、それをdreamhostなどのレンタルサーバーにアップロードしたWordpressに使うにはどうしたらいいのか? 2. htaccessやアパッチなどの設定(gzipやキャッシュなど)など、HTMLやCSSなどのプログラミング言語ではない、重要なウェブサイト運営の知識 3. ページの表示速度を早くするために、gzipをOnにすべきか、bpsは十分かなどの設定可能なオプションと測定方法など 4. その他ここに挙がっていないけれど、wordpressサイトを運営する上で重要なこと を知識の漏れが内容に、体系的に学べられるサイトを探しております。 英語ができるので海外サイトでも結構です。 どなたかご助力ください。よろしくお願い申し上げます。
質問日時: 2014/10/17 20:46 質問者: dobryden
解決済
2
0
-
MySQLで0で検索できない
以下のようなPHPのソースとMySQLのテーブルで、numberが0の行をhtmlで取得しようとしているのですが、検索窓に0を入れて検索しても取得できません。ちなみに、numberが1や2の行は取得することができます。 なぜnumberが0の行を取得できないかと、どうすればnumberが0の行を取得することができるか教えてください。 <PHPのソース> <?php $url = "localhost"; $user = "root"; $pass = ""; $db = "test"; $html = ""; // MySQLへ接続する $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); // データベースを選択する $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); // クエリを送信する $sql = "SELECT * FROM test"; $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); ?> <form action="" method="post"> <input type="text" name="numberSearch" value=""> <input type="submit" value="検索"> </form> <?php //表示するデータを作成 if($rows && !empty($_POST['numberSearch'])){ while($row = mysql_fetch_array($result)) { if ($row["number"] == $_POST['numberSearch']) { $html .= "<tr>"; $html .= "<td>".$row["alphabet"]."</td><td>".$row["number"]."</td>"; $html .= "</tr>\n"; } } }else{ $msg = "データがありません。"; } // MySQLへの接続を閉じる mysql_close($link) or die("MySQL切断に失敗しました。"); ?> <html> <head> <meta charset="utf-8"> <title>numberSearch</title> </head> <body> <table width = "200" border = "0"> <tr bgcolor="##ccffcc"><td>alphabet</td><td>number</td></tr> <?= $html ?> </table> </body> </html> <データベースのテーブル> alphabet number A 0 B 1 C 2 D 1 E 1 F 0 G 1
質問日時: 2014/10/15 20:25 質問者: h_mp
ベストアンサー
2
0
-
MySQLで、INSERT文でエラー
下記のスクリプトで、MySQLサーバーのテーブルの中身を見ようとしたら、 返り値が空でした(行数0) ( クエリの実行時間 0.0010 秒 ) と表示されます。 どこが間違ってるのでしょうか。 ////////////////////// // データベース登録 // ////////////////////// $con = mysql_connect("mysql020.******", "*****", "*****"); // リモートのMySQLデータベースサーバーに接続する mysql_select_db("LAA0471050-ideamemo"); // データベースサーバーに存在する(myPHPAdminで作成済みの)データベースを選択する $sql = "SET NAMES utf8"; mysql_query($sql, $con); $sql = "INSERT INTO ideamemo_table (color, title, contents, create) VALUES ('$color', '$title', '$contents', '$create');"; mysql_query($sql, $con); mysql_close($con); ?>
質問日時: 2014/10/14 12:19 質問者: beterugius
ベストアンサー
2
0
-
データベース、テーブル設計についてです。
現在、ブランドサイズをインターナショナルサイズに変換するデータベース設計をしていて悩んでいることがあります。どうか知恵をお貸しください。 参考にしています書籍は、ミック著「達人に学ぶDB設計徹底指南書」です。 書籍には、正規化の次数が低いほど検索SQLのパフォーマンスは良いですが、データ整合性は低く、正規化していくほどパフォーマンスが低下する代わりにデータ整合性が高くなります。と書いています。 ですので、正規化した結果、5つのテーブルが出来上がりました。 これらを正規化したテーブルを中間テーブルで扱うには、どのように設計すればよろしいでしょうか? 以上、よろしくお願いします。 下記は、正規化したテーブルです。 テーブル名 :: ブランド 扱うデータ :: (仮)A、その他ブランド.... テーブル名 :: 性別 扱うデータ :: メンズ、レディース、ユニセックス テーブル名 :: カテゴリー 扱うデータ :: ウェアー、ボトム、シューズ、その他カテゴリー.... テーブル名 :: ブランドサイズ 扱うデータ :: 1、2、3、その他ブランドサイズ.... テーブル名 :: インターナショナル・サイズ 扱うデータ :: S、M、L、その他サイズ....
質問日時: 2014/10/14 11:29 質問者: Marshmallows
ベストアンサー
1
0
-
複数データのUPDATEに関して
お世話になっております。 MySQLに保存している顧客データの処理について質問させてください。(MySQLとPHPでブラウザ経由でデータ管理をしています) 以下のようなテーブルがあり、顧客に対して配送するダイレクトメールの印刷をする流れのことです。 no name dm 1 佐藤 no 2 吉田 3 谷口 4 伊藤 まず最初にこのテーブルにある顧客を一覧で表示させますが、名前と共にチェックボックスを設け、 noという値が入っているレコードはチェックを入れて一覧表示します。 一覧表示の後、印刷表示というボタンを押すと、印刷用レイアウトの画面に移動し、印刷を実行という流れです。 dmというカラムは印刷をするか否かのフラグであり、noと代入されているか顧客は印刷しないことを意味しますが、 印刷前の確認が出来るようにするためであり、また印刷対象の変更を同時に行えるようにしたいと、このような流れになってます。 そこで質問なのですが、単純に一覧から印刷用ページに移動させるだけなら問題はないのですが、このチェックボックスのチェック、チェックを外したり、チェックを入れたりと、服すのチェックを一度に行い、印刷用ページに移動(ポスト)したとき、チェックの入ったデータだけ印刷一覧に表示したいと考えてます。 このとき、変更があった顧客のdmカラムをアップデートしたいのですが、どのような仕組みが一番負荷が少なくて住むのでしょうか? 現在の顧客数は1万5千件程度ですが、印刷用ページに移動した際、1つずつチェックをするのは非常に非効率ですし、かといって、元々チェックの入っていたデータと、印刷ページにポストしたとときのデータを共に違う配列に代入して・・・とも考えているのですが、効率のよい流れというものがなかなかイメージすることが出来ません。 お忙しいとは思いますが、お知恵を頂戴できれば幸いです。 宜しくお願いいたします。
質問日時: 2014/10/14 01:05 質問者: a4_chapp
ベストアンサー
1
0
-
php mysqlのクエリでエラー
「←追加」と追加したのですが、Warning: Invalid argument supplied for foreach()とエラーがでました。 調べたり、試行錯誤してみましたがダメでした。 何が間違っているのでしょうか? try{ $dbh = new PDO($dsn, $user, $password); print('接続に成功しました。<br>'); $dbh->query('SET NAMES utf8'); $sql = ('SELECT song.number, song.song_title, artist.artist, ka2.artist as artist_2, ka3.artist as artist_3, ka4.artist as artist_4, ka5.artist as artist_5, ka6.artist as artist_6, ka7.artist as artist_7, ka8.artist as artist_8, ka9.artist as artist_9, ka10.artist as artist_10, ka11.artist as artist_11, ka12.artist as artist_12, sakushi.sakushi, ss2.sakushi as sakushi_2, ss3.sakushi as sakushi_3, ss4.sakushi as sakushi_4, sakkyoku.sakkyoku, sk2.sakkyoku as sakkyoku_2, sk3.sakkyoku as sakkyoku_3, sk4.sakkyoku as sakkyoku_4, hennkyoku.hennkyoku, hk2.hennkyoku as hennkyoku_2, hk3.hennkyoku as hennkyoku_3, hk4.hennkyoku as hennkyoku_4, genre, gr2.genre as genre_2,←追加 tie_up, part FROM (((((((((((((((((((((((((((( song LEFT JOIN artist ON song.artist_1 = artist.artist_ID) LEFT JOIN artist ka2 ON song.artist_2 = ka2.artist_ID) LEFT JOIN artist ka3 ON song.artist_3 = ka3.artist_ID) LEFT JOIN artist ka4 ON song.artist_4 = ka4.artist_ID) LEFT JOIN artist ka5 ON song.artist_5 = ka5.artist_ID) LEFT JOIN artist ka6 ON song.artist_6 = ka6.artist_ID) LEFT JOIN artist ka7 ON song.artist_7 = ka7.artist_ID) LEFT JOIN artist ka8 ON song.artist_8 = ka8.artist_ID) LEFT JOIN artist ka9 ON song.artist_9 = ka9.artist_ID) LEFT JOIN artist ka10 ON song.artist_10 = ka10.artist_ID) LEFT JOIN artist ka11 ON song.artist_11 = ka11.artist_ID) LEFT JOIN artist ka12 ON song.artist_12 = ka12.artist_ID) LEFT JOIN sakushi ON song.sakushi_1 = sakushi.sakushi_ID) LEFT JOIN sakushi ss2 ON song.sakushi_2 = ss2.sakushi_ID) LEFT JOIN sakushi ss3 ON song.sakushi_3 = ss3.sakushi_ID) LEFT JOIN sakushi ss4 ON song.sakushi_4 = ss4.sakushi_ID) LEFT JOIN sakkyoku ON song.sakkyoku_1 = sakkyoku.sakkyoku_ID) LEFT JOIN sakkyoku sk2 ON song.sakkyoku_2 = sk2.sakkyoku_ID) LEFT JOIN sakkyoku sk3 ON song.sakkyoku_3 = sk3.sakkyoku_ID) LEFT JOIN sakkyoku sk4 ON song.sakkyoku_4 = sk4.sakkyoku_ID) LEFT JOIN hennkyoku ON song.hennkyoku_1 = hennkyoku.hennkyoku_ID) LEFT JOIN hennkyoku hk2 ON song.hennkyoku_2 = hk2.hennkyoku_ID) LEFT JOIN hennkyoku hk3 ON song.hennkyoku_3 = hk3.hennkyoku_ID) LEFT JOIN hennkyoku hk4 ON song.hennkyoku_4 = hk4.hennkyoku_ID) LEFT JOIN genre ON song.genre_1 = genre.genre_ID) LEFT JOIN genre gr2 ON song.genre_2 = gr2.genre_ID)←追加 LEFT JOIN tie_up ON song.tie_up_1 = tie_up.tie_up_ID) LEFT JOIN part ON song.part_1 = part.part_ID) ;');
質問日時: 2014/10/12 17:45 質問者: IrohaKujoh
解決済
2
0
-
SQL文作成についてお知恵をお貸しください
ユーザーと商品のテーブル(省略)、 商品ジャンルテーブル、 genre id name 1 家電 2 3万円台 3 テレビ 4 黒 5 SONY 6 三菱 商品とジャンルのリレーションテーブル、 item_genre item_id genre_id 1 1 1 2 1 3 2 1 2 3 2 4 2 6 ユーザーが希望する商品ジャンルのテーブル(ユーザーとジャンルのリレーションテーブル)、 user_genre user_id genre_id 1 1 1 3 2 1 2 3 2 4 3 1 3 3 3 4 3 5 以上があるとします。 この時に商品側から(商品IDを元に)、その商品を希望しているユーザーIDを取得する場合の SQL文の作成方法のご教示をお願いいたします。 上記のテーブルの例ですと、アイテム1から取得したいユーザーIDは1、アイテム2からは ユーザーID 1と2を取得できればOKです。 商品が持つジャンルIDが1,2,3に対してユーザーが希望するジャンルIDが1,3のように少ない 場合は対象にふくまれますが、商品が持つジャンルIDが1,3に対してユーザーが希望する ジャンルIDが1,3,4のように多くなる場合は対象に含めません。 色々と考えてみたのですが、頭がこんがらがってしまい迷宮に迷い込んでしまいました。 すみませんがお知恵をお貸しください。よろしくお願いします。 ※DBサーバーがMySQLのため、MySQLで実現できる方法だとありがたいです。
質問日時: 2014/10/08 18:44 質問者: hogehuga09
ベストアンサー
4
0
-
●MySQLが急に停止する事について質問です。
最近、しょちゅうMYSQLが急に、停止しkillして再起動しておりますが、 その度に、以下のログが記載がありますが、具体的な対策などご存知でしたらご教示下さい。 現在、./ibdata1 は、./ibdata1 と./ibdata1.bak にしております。 InnoDB: Unable to lock ./ibdata1, error: 11 InnoDB: Check that you do not already have another mysqld process InnoDB: using the same InnoDB data or log files. InnoDB: Shutdown completed; log sequence number 0 100570041 [Note] /usr/libexec/mysqld: Shutdown complete mysqld ended InnoDB: Error in opening ./ibdata1 141007 22:41:19 InnoDB: Operating system error number 11 in a file operation. InnoDB: Error number 11 means 'Resource temporarily unavailable'. InnoDB: Some operating system error numbers are described at InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html InnoDB: Could not open or create data files. InnoDB: If you tried to add new data files, and it failed here, InnoDB: you should now edit innodb_data_file_path in my.cnf back InnoDB: to what it was, and remove the new ibdata files InnoDB created InnoDB: in this failed attempt. InnoDB only wrote those files full of InnoDB: zeros, but did not yet use them in any way. But be careful: do not InnoDB: remove old data files which contain your precious data! 141007 22:41:19 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use 141007 22:41:19 [ERROR] Do you already have another mysqld server running on por t: 3306 ? 141007 22:41:19 [ERROR] Aborting 141007 22:41:19 [Note] /usr/libexec/mysqld: Shutdown complete 141007 22:41:19 mysqld ended
質問日時: 2014/10/08 13:08 質問者: mikichan-e
ベストアンサー
3
0
-
AUTO_INCREMENTの空きデータ
データベースに入っている値を見るとAUTO_INCREMENTされているIDなどが列の削除に空き(2の次が10のような)が存在しております。INT(10)に設定されているため、保管数の限界が存在します。こういうのを整頓(2の次は3)しなおすことはできるのでしょうか。 無知ですいませんが、教えていただけませんでしょうか。 組み合わせは、PHP+Mysqlです。
質問日時: 2014/10/07 11:30 質問者: matxx
解決済
2
0
-
MySQLの文字化け
WindowsServerでPHPとMySQLで作成したプログラムを動かしています。 PHPからINSERTでMySQLに登録すると環境依存文字(「(株)・(有)など)が「?」になってしまいます。 PHPからSELECTでブラウザ上に表示させると文字化けはしていませんが、phpMyAdminで確認すると「?」になっています。 このデータベースの内容を他のサーバーに移すときに、phpMyAdminからエクスポートまたはmysqldumpすると「?」のままエクスポートして、他のサーバーでインポートしても当然「?」になってしまいます。 環境依存文字が文字化けしない、あるいは他のサーバーでも環境依存文字をそのまま移行できるようにはできないでしょうか。 よろしくお願いします。 PHPはEUC-JP、データベースはujisで作成しています。 INSERTの直前でSET NAMES UJISを実行しています。
質問日時: 2014/10/03 19:03 質問者: hi18
ベストアンサー
2
0
-
MySQLのストアドプロシージャについて
MySQL5.6のストアドプロシージャが返すSELECT結果のフェッチ方法について教えてください。 delimiter $ create procedure sample_proc() begin select * from TEST_TBL; end$ の様なストアドプロシージャがあり、これを他のストアドプロシージャから呼び出して、 ループしながらフェッチしたいのですが、どうすればよいでしょうか。
質問日時: 2014/10/02 23:37 質問者: draqoon2014
解決済
2
0
-
文字コード変更
mysql> mysql> show variables like 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | sjis | | character_set_filesystem | binary | | character_set_results | sjis | | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql> mysql> character_set_systemもsjisに変更したいと考えております。 どのようにすれば可能でしょうか? やりたいことはmysqlworkbenchでselect文のクエリ内容を日本語表記することです。 ご存知の方、宜しくお願いします。
質問日時: 2014/09/27 21:08 質問者: nikogoo
ベストアンサー
1
0
-
トリガーについて
このジャンルでお願いします。 次のようなテーブルで DROP TABLE IF EXISTS item; CREATE TABLE IF NOT EXISTS item ( id int(11) NOT NULL AUTO_INCREMENT, parent_id INT, name varchar(32) NOT NULL, level int NOT NULL, FOREIGN KEY (parent_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO item (parent_id, name) VALUES (null, 'item1'); INSERT INTO item (parent_id, name) VALUES (1, 'item2'); INSERT INTO item (parent_id, name) VALUES (2, 'item3'); INSERT INTO item (parent_id, name) VALUES (3, 'item4'); INSERT INTO item (parent_id, name) VALUES (2, 'item5'); INSERT INTO item (parent_id, name) VALUES (null, 'item6'); INSERT INTO item (parent_id, name) VALUES (6, 'item7'); INSERT INTO item (parent_id, name) VALUES (null, 'item8'); DROP PROCEDURE IF EXISTS UPDATE_LEVEL; DELIMITER // CREATE PROCEDURE UPDATE_LEVEL() BEGIN DECLARE CNT INT; DECLARE LVL INT; SET LVL=1; UPDATE item SET level=0; UPDATE item SET level=LVL WHERE parent_id IS NULL; SELECT COUNT(*) INTO CNT FROM item WHERE level=LVL; WHILE CNT>0 DO UPDATE item INNER JOIN (SELECT id FROM item WHERE level=LVL) as temp ON parent_id=temp.id SET item.level=LVL+1; SET LVL=LVL+1; SELECT COUNT(*) INTO CNT FROM item WHERE level=LVL; END WHILE; END // DELIMITER ; DROP TRIGGER IF EXISTS TRG_INSERT_ITEM; DELIMITER // CREATE TRIGGER TRG_INSERT_ITEM AFTER INSERT ON item FOR EACH ROW BEGIN CALL UPDATE_LEVEL(); END; // DELIMITER ; itemテーブルにinsertした場合にトリガーでUPDATE_LEVEL()を実行するようにしているのですが、 実際に挿入すると、 >Can't update table 'item' in stored function/trigger because it is already used by statment which invoked this stored function/trigger . このようなエラーが出てしまいます・・・ UPDATE_LEVEL()にinsertらしき記述はないと思うのですが、 これはなぜこのようなエラーが出るのでしょうか?
質問日時: 2014/09/26 15:06 質問者: takagoo100
ベストアンサー
3
0
-
GROUP BYについて
お世話になっております。GROUP BY に関してつまずいています。 色々と調べているのですが、解決できないため質問させて下さい。 まず下記のような履歴テーブルがあります。 rireki_member_noとは投稿者のIDであり、title1、title2に登録された日付データ(date型)は その投稿者が投稿した日付が登録されています。(title1だけの場合もあればtitle2だけの場合もあり、両方の場合もあります) rirekiテーブル rireki_no rireki_member_no title1 title2 1 2 2014-09-12 2 1 2014-09-12 3 3 2014-09-14 2014-09-14 4 2 2014-09-18 5 1 2014-09-19 また、下記は投稿者のテーブルであり、rireki_member_noと、member_noは紐付いたものとなります。 memberテーブル memner_no member_name 1 佐藤 2 吉田 3 佐々木 そこで今回行いたいのは、タイトルを指定し、且つ日付を範囲指定した時、その会員の名前、そして投稿した日付を一覧で表示したいと考えていますが、その際のSQL文が分からず困っている状況です。 イメージ的には、 title2を指定し、2014-9-13から20149-19と範囲指定した場合 3 佐々木 2014-09-14 2 吉田 2014-09-19 といった結果を求めたいと考えています。 お恥ずかしいとは思いますが、実は昨夜からずっと悩んでいたりして・・・ rirekiテーブル単体であれば、 http://norm-nois.com/blog/archives/1293 で似たような内容で紹介されているのですが、今回のようにJOINが絡むと難易度が高くなっている状況です。 お忙しいなか恐縮ですが、お知恵を頂戴出来れば幸いです。 宜しくお願い致します。
質問日時: 2014/09/23 00:56 質問者: a4_chapp
ベストアンサー
3
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【MySQL】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlのupdate構文についての質問で...
-
MAMP 99ドル約1.6万円 高いですね
-
(初心者)MySQLやmaraDBで、create t...
-
#1062 - '0' は索引 'PRIMARY' で重...
-
エラー 1068 (42000): 複数の主キー...
-
SQLです教えてくださいお願いします
-
SQLです教えてください。
-
SQLです教えてくださいお願いします
-
SQLです教えてくださいお願いします...
-
utf8bomとutf8mb4の違いがいまいち...
-
SQLです教えてくださいお願いします?
-
東京23区を、皇居を中心とした4つ...
-
mysqlがインストールされているのか...
-
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あってますか?教えてください
おすすめ情報