MySQL 総合 Part13at DB
MySQL 総合 Part13 - 暇つぶし2ch1:NAME IS NULL
08/01/30 03:49:10
快速 RDBMS、MySQL の総合スレです。
前スレ[MySQL 総合 Part12] スレリンク(db板)
[関連スレと過去ログ]
URLリンク(find.2ch.net)
URLリンク(makimo.to)

[MySQL Developer Zone] URLリンク(dev.mysql.com)
[MySQL 日本語リファレンスマニュアル] URLリンク(dev.mysql.com)
[MySQL Internals Manual] URLリンク(dev.mysql.com)

[MyNA] URLリンク(www.mysql.gr.jp)
[MLja] URLリンク(lists.mysql.com)

ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。
URLリンク(www.mysql.gr.jp)
MyNAでの「心得の条」
URLリンク(www.mysql.gr.jp)

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

  | .| /./  /      |   | _,,,,||,,,l.,,_ ト      /  | _ |    .|   /
.  | | .| |  l      .| .,-'|.l  .|l .| `|. l     '  /´ /    /   /
  | | |.|  .|      , |´ | .|  | _|,_ l .|      ./  ''`ト  ./  /
  | | |.|  |       |  .| |_,,l-,─-.,_、_ |     /   .λl,/   /
.  |. |. ||  |       .| | /::::l  ヽ `'' |   / ,  ,.ミ,|´|   ./
,,,__.| .| ヘ .|        | .|/ |:i::::::〉., ノl  | /  .//  ∨| /
  `'' ‐ 、l |        .|||l'l:|:|l:::::`':::::i´||  ''    /   ...:::::l..''
      .`ヽ、       |:| ヾl.ヾ::::::::::| .||        :::::::::  l
        .\_    -''lヾ ヘ:、.ヘ;;_;ノ ノレ            .l
          .ヾ=,,,_   .ヘ  ,ヾ_,,=..''´....      _,,,   /
           ヽ .i'`''‐--.〉''´  .ヽ::::::::  _,,, -‐'''´:::::l ./.|      drop tableは1日10回な!
.\          ヽ`ニ /     l.   /:::::::::::::::::::::::/ i''ヘ .l
  `ヽ         .l-‐''l      /   .l:::::::::::::::::_;;-ヘ l ヽ ヘ
   ./.`iヽ       .|ヽ|     ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ
  / /|.| ヽ      .| .|    /ヽ     /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ
// /./.|,, -'''''''''''''''-.、.'-<    .|  ヽ   /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ
/ / /./        ヽ,.`   .l   ヽ,'ノ/ ヾ_;;;l.l   |/ .l l |  ヾ.、lヘ
  ./ .//l          i    |    .ヾ   |:::::|.|  .|' l//   i.|| i.|

2:NAME IS NULL
08/01/30 03:49:54 Q+2wuCXB
【関連ツール及びユーティリティ】

[phpMyAdmin] URLリンク(www.phpmyadmin.net)
[phpMyBackupPro] URLリンク(www.phpmybackuppro.net)
[MySQLCC] URLリンク(www.mysql.com)
[MySQL-Front] URLリンク(www.mysqlfront.de)
[mytop] URLリンク(jeremy.zawodny.com)
[Common SQL Environment] URLリンク(www.hi-ho.ne.jp)

MySQL ABでの各種GUIツールはMySQL GUI Toolsとして統合されています
(WorkbenchはGUI Toolsから独立しました。)
URLリンク(dev.mysql.com)
・MySQL Administrator
・MySQL Query Browser
・MySQL Migration Toolkit

URLリンク(dev.mysql.com)
・MySQL Workbench

【関連書籍】

[MySQL Books]
URLリンク(dev.mysql.com)
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)

3:NAME IS NULL
08/01/30 15:44:59
スレ立て乙です>1

全スレ997の者です。
.inputrcに
set convert-meta off
set meta-flag on
set output-meta on
を記述してTerminal.appは再起動、bash上では日本語の入力は出来ています。
$ echo 漢字
漢字

mysql5の使用中のみ、漢字入力が?????になるのです。
mysql> select * from jpzip where area='???';
Empty set (0.71 sec)

(神奈川県、って入力してます)

お知恵拝借願います。
MacOS X 10.5.1
MySQL Server version: 5.0.51 Source distribution


4:NAME IS NULL
08/01/31 01:09:20
DB初心者です。
GROUP BY について質問があります。

----TABLE_A----
|DataA|DataB|DataC|
------------------
| AAA | WWW |1111
| BBB | XXX |2222
| AAA | YYY |3333
| DDD | ZZZ |4444

この様なテーブルがあった場合に、DataAカラムがAAAの物を選び出し、
更にDataCの中の最大値を調べ、最大値となった行のDataBを抜き出す方法はあるのでしょうか?

自分でやってみた方法として以下の様なSQLを試してみたのですが
SELECT DataB MAX(DataC) FROM TABLE_A WHERE(DataA=AAA) GROUP BY DataA
このSQLだとDataBのカラムがMAX(DataC)と同じ行の値にはならない様です。
なにか句が足りないのでしょうか?

また、上記の抽出をDataAがAAAであるカラムに限定せずに行いたいのですが、何か良い方法はありませんでしょうか。
具体的には以下の様な抽出結果を求めています。

----結果----
|DataA|DataB|DataC|
------------------
| AAA | YYY |3333 (AAAグループの中の最大値を持つ行を抽出)
| BBB | XXX |2222 (BBBグループの中の最大値を持つ行を抽出)
| DDD | ZZZ |4444 (CCCグループの中の最大値を持つ行を抽出)

5:NAME IS NULL
08/01/31 01:16:45
>>4です

すいません。スレ間違えました><
SQL質問スレにいってきます。

6:NAME IS NULL
08/01/31 01:39:20
Maria ってどんなかんじですかね?
URLリンク(journal.mycom.co.jp)

7:NAME IS NULL
08/02/01 02:19:12 7TNjcR3o
SELECT COUNT(id) AS id_num FROM test WHERE id_num>'1'

をすると、エラーになります。
COUNTした場合、WHEREを使って抽出出来ないのでしょうか?
ORDER BYでソートするのは出来ます。

MySQLのバージョンは4.1.22です。

8:NAME IS NULL
08/02/01 09:36:59
>>7
何をしたいのか今ひとつわからんけど
カラム id の値が重複したレコードの件数を取得したいなら
こんな感じかな
select id, count(*) from test group by id having count(*)>1;

9:NAME IS NULL
08/02/01 09:42:53
>>7
COUNT()値の様な条件判定はHAVINGに記述するのが
SQLでは基本です。

10:7
08/02/01 11:39:10
>>8-9
WHEREじゃなくて、HAVINGなんですね。知りませんでした。

HAVINGを使うとやりたいことが出来ました。ありがとうございました。

11:NAME IS NULL
08/02/02 15:19:29 ff4pjUXH
1レコード追加毎に「code」フィールドに
ユニークな文字列を追加したいと思っています。

PHPを使わずに、MySQLの関数のみでその様な事って、出来ないでしょうか?
(オートインクリメントではないです)

12:NAME IS NULL
08/02/02 15:28:18
>>11
トリガでUUID()を入れるってのはどう?
URLリンク(dev.mysql.com)
レプリケーションでダメと書いてあるが。
どうだめなのかよくわからんな。

13:NAME IS NULL
08/02/02 16:13:54 ff4pjUXH
>>12
ありがとうございます。UUIDを使ってみます。

14:あやか
08/02/02 18:39:32 qcb6dBmi
すみません。Excelで唐突な質問なのですが。。。

実は今、会社の売上表のデータ確認作業をしているのですが、
ある製品のみ計算式とは違う値が入っているのに気付きました。
セルには、計算式「=ROUND(0.004*A2),2」と入っているのですが、
その値が、=0.004*A2の値でないものが入っているんです。

その値は、計算式による値よりも、すべて14.925多く、
明らかに故意による操作と思われるのですが、
エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
いうことは可能なのでしょうか???

どなたかご存知でしたら教えてくださいませM(__)M

15:NAME IS NULL
08/02/02 19:06:52
君の使ってるのは Myエクセール?

16:NAME IS NULL
08/02/02 19:57:50
>>14
このへんかな?
Excel総合相談所 64
スレリンク(bsoft板)

17:あやか
08/02/02 21:17:46 qcb6dBmi
NAME IS NULLさん ありがとうございます。
そちらで質問してみますね。

18:NAME IS NULL
08/02/02 21:43:52
真性のアホだろおまえ

19:NAME IS NULL
08/02/03 00:30:57
何だとコノヤロウ

20:NAME IS NULL
08/02/03 14:49:01
なぜ、MySQLは2つ以上のインデックスを同時に使えないのですか?

21:NAME IS NULL
08/02/03 23:03:38
>>20
MySQL 5.0以上なら複合インデックスが使える。
URLリンク(labs.unoh.net)

22:21
08/02/03 23:25:09
複合インデックスじゃなかった、インデックス結合ね。

23:NAME IS NULL
08/02/04 02:33:44
ちょっと質問です。数値とか文字列の型についてなんですが、

例えば、
select 0x4142 ;      # <-- AB 
select 0x4142 + 0 ; # <-- 16706
select cast(0x4142 as unsigned) ; # <-- 16706
となると思うんですが、

これを、ユーザー定義変数にsetしてからやると、
SET @aaa = 0x4142;
select @aaa ;      # <-- AB
select @aaa + 0 ; # <-- 0
select cast(@aaa as unsigned) ; # <-- 0
となってしまいます。

これは、マニュアルなんかによると、set @var = *** で文字列として @var に格納されてしまうからと思うんですが、
変数にSETしつつ、この16進なデータを’数値’として認識させせることは可能でしょうか?

マニュアルの関係ありそうなところを、ずっと(5時間位)探してるんですが、それらしきものを見つけられません。
ちなみにVersionは、5.0.50-Win32です。

24:NAME IS NULL
08/02/04 22:55:26
インデックス複数張ってるとき、思ったとおりのインデックスを
使ってくれないときに「これ使え」って指示するのってなんだっけ?

25:NAME IS NULL
08/02/04 23:12:50
>>24
FORCE をつかえ。

26:NAME IS NULL
08/02/04 23:19:03
>>23
select conv(hex(@aaa),16,10); で良いか?

27:NAME IS NULL
08/02/05 00:13:49 h+XFJgnD
SELECT id FROM aaa LEFT JOIN bbb USING(id)

というSQLで、aaaテーブルとbbbテーブルを結合しています。
LEFT JOINにしているのは、aaaテーブルに登録されている値が
すべてbbbと連結しているわけではないからです。

上記のSQLに
「bbbテーブルのtypeが1であれば、nameが存在する必要がある(NULLは駄目)」
という条件式を入れたいのですが、どのように書けばいいのでしょうか?

IF(bbb.type=1,bbb.name IS NOT NULL)
を追加しても、上手くできませんでした。


28:NAME IS NULL
08/02/05 00:24:27
>>24
USE KEY (…)

29:NAME IS NULL
08/02/05 02:09:38
>>25
マスター・ヨーダ乙

30:NAME IS NULL
08/02/05 03:08:42
>>26
うおー、でけたー!!!
すごく感動しました。

31:NAME IS NULL
08/02/05 21:10:48 s4DX1xog
質問させてください。以下のテーブルがあるとします
id |name |photo |class
----------------------
1 |yamada |0 |4
2 |tanaka |1 |4
3 |miyata |0 |4
4 |tukaji |1 |4
質問1:
上記のテーブルに select * from `tbl` where `class`=4 order by `photo` desc
とした場合に返ってくる結果って、idの値の大小はキープされたままですよね?
(tanaka,tukajiの順番で…) この認識でOKでしょうか? 一応テストはしたんですが、、

質問2:
上記のselect文のようにphotoの値を降順にして、なおかつidも降順で取得する方法って
ありますか?
優先順位は、photoの値が降順>idの値が降順 です

ど素人なので、質問自体意味不明だったらすみません
回答をよろしくお願いします

32:NAME IS NULL
08/02/05 21:50:28 BphyAXBx
order by photo desc,id desc

33:NAME IS NULL
08/02/05 21:51:17
>>31
order by phpto,id

34:NAME IS NULL
08/02/05 22:07:34
>>32-33
ありがとうございます!
質問1の疑問についても、間違ってないってことでいいですよね?
ありがとう


35:NAME IS NULL
08/02/05 22:16:37
>>34
1は間違い

36:NAME IS NULL
08/02/05 23:41:13
>>35
まちがってますか?
すみません、どう間違っているのか教えてもらえませんか?

37:NAME IS NULL
08/02/05 23:57:13
order by で指定していないカラムの順番はDBにお任せ
現在望む形で取得できているのはたまたま

38:NAME IS NULL
08/02/06 01:01:43
>>27
SELECT id FROM aaa LEFT JOIN bbb ON aaa.id=bbb.id AND (bbb.type != 1 OR name IS NOT NULL)

39:NAME IS NULL
08/02/06 04:26:35
PHP、PDO、MySQLでWebソフトウェアを作成する際の質問です。

自宅の同環境で作成し、問題なく度鬱していたPHPソフトウェアをレン鯖(coreserver.jp)にアップしたところ、
PDOのprepareステートメントでエラーが発生してしまって困っています。

具体的には
$pdo = new PDO(接続文字列)
$stmt1 = $pdo->prepare(クエリ);
$stmt2 = $pdo->prepare(クエリ);
$stmt3 = $pdo->prepare(クエリ);

$stmt1->execute();
$stmt2->execute();
$stmt3->execute();

等と複数のprepareステートメントを作成し、利用しようとした時にエラーになってしまうようです。(原因とは限りませんが)

PHP、PDO、MySQLの組み合わせた場合、設定等によってprepareの同時作整数に制限等が出る場合はあるのでしょうか?
また、複数のprepareステートメントを作成して利用する方法自体について、Webソフトウェア並びに、MySQLの使用方法として、
問題があるのかどうか等、ご教示願えませんでしょうか。

40:NAME IS NULL
08/02/06 19:20:32
39です。
自己解決しました。ありがとうございます。

41:NAME IS NULL
08/02/07 13:40:29
>>37
ありがとう そういうものなんですね 助かりました

42:NAME IS NULL
08/02/08 17:36:51
ユーザーidとゲームidと時間のデータがあります。
ゲームidごとに、同じユーザーのデータが入ったりしています。

仮にuserid ,gameid,updatetimeとします。


この中から、ゲームid関係無く
ユーザーidと、そのユーザーidの持っている時間が最も早いもの
だけを取ってきたいのですが何か良い方法はありますか?

43:NAME IS NULL
08/02/08 17:43:26
userid , MAX(updatetime)

GROUP BY userid

では?
MAXだかMINだか正確ではないけど。

44:NAME IS NULL
08/02/08 17:44:07
select userid,min(updatetime) from hogeTBL group by userid

45:NAME IS NULL
08/02/08 17:44:39
あらら
カブりスマソ

46:NAME IS NULL
08/02/08 17:48:59
MINとかMAXとか便利なものがあるんですね

ありがとうござました


47:NAME IS NULL
08/02/08 19:05:23
君はDBって何をするものだと思ってたの?

48:NAME IS NULL
08/02/08 19:11:57
夢がいっぱい詰め込まれているもんだと思ってました

49:NAME IS NULL
08/02/08 20:10:31
DBといったら、7ヶ集めて願い事をするものだ。

50:NAME IS NULL
08/02/08 20:14:24
身長165
体重120

51:NAME IS NULL
08/02/08 20:53:48 ENc+AoR0
で・ぶ w

52:NAME IS NULL
08/02/09 00:09:04
>>48
ああ、確かに見るからに頭は空っぽだね。

53:NAME IS NULL
08/02/09 00:48:34
なんというHEAD-CHA-RA

54:NAME IS NULL
08/02/09 18:33:21
mysql4.1.22のインストールなんですが、環境設定?で最後の4項目のうち

・Prepare configuration
・Write configuration file

まではいくのですが

・Start service
・Apply security settings

が、行なえません。(チェックが入らない。また、パスワードを入力する画面が無いまま「Execute」の画面にいってしまう)

どうすれば良いのか、もしくはどういった点を調べれば良いのか教えて下さい。

55:54
08/02/09 18:50:49
説明が難しかったので…

URLリンク(www.ddsystems.info) の 『 Install As Windows Service 』
にチェックが入っていません。(選択出来ないようになっている)

URLリンク(www.ddsystems.info) の画面にいきません。

URLリンク(www.ddsystems.info) の上2つしかチェックが入りません。

自分のパソがwin98だからでしょうか?なにか参考になるサイトなどありましたら教えて下さい。

56:NAME IS NULL
08/02/09 19:19:24 lDXdLt0j
>>55
サービスというのはXP NT 2000向けの話
98ではサービスとして起動させるのは出来ない。

57:56
08/02/09 19:23:16 lDXdLt0j
追加 ここでも読んでみて
URLリンク(dev.mysql.com)


58:NAME IS NULL
08/02/09 20:42:01
>>56,57
ありがとうございます。熟読してきます。

59:NAME IS NULL
08/02/09 21:43:48
smallint(6)
ってどういう意味?
32ビットなのに6バイト使うの?
許されるの?

60:NAME IS NULL
08/02/09 22:40:33
表示桁数のことじゃ、ボケ

61:NAME IS NULL
08/02/10 00:12:39
>>60
知ったか乙
5桁しかねーだろwww

62:NAME IS NULL
08/02/10 12:29:37
ER図とMySQLの連携ができるフリーツールを探してます。
>>2に記載されてませんでしたが、DBDesignerというソフトがあるそうです。

もし使われている方がいましたら、教えて頂けないでしょうか。
MySQL4.1、5.0でも DBDesignerは使えるのでしょうか?
バージョンアップされてないから心配してます^^;

困っているのは
 接続できますが、モデルが開けません・・・orz
ということです。

これは、DBDesigner4はMySQL4.1以降には対応していないって事でしょうか。
フリーでかなり良さそうなツールだったので、ダメならすごく残念。

どなたか、ご存知でしたら、どうぞ教えてください。

63:NAME IS NULL
08/02/10 16:50:13
>>61
ヒント。負数

64:NAME IS NULL
08/02/11 21:16:14
KURAMAE

65:NAME IS NULL
08/02/12 00:05:59 tZT7Xc+W
mysqlで日本語が表示されません(文字化けではありません)

今、 URLリンク(allabout.co.jp) ここやってます。
ファイル名:tab1.txt

create table tab1 (number int(10) unique not null,name char(40) not null,note char(60));
insert into tab1 values(1,'abcdefg','apple');
insert into tab1 values(2,'hijklmn','banana');
insert into tab1 values(3,'opqrstu',"");
insert into tab1 values(4,'vwxyz',"pine");
insert into tab1 values(5,'あいうえお',"日本語もOK");
insert into tab1 values(6,'かきくけこ',"漢字");

で、select * from tab1;すると、日本語部分(5と6)が表示されません。
my.iniでは[client]、[mysql]、[mysqld]の下に
default-character-set=utf8 を足しました。

66:NAME IS NULL
08/02/12 00:28:15
>>65
WindowsでUTF8を表示できるのか?

[client]、[mysql]はcp932で
[mysqld]だけutf8にするんじゃない?


67:65
08/02/12 00:53:50
>>66
ダメでした。全部cp932と全部sjisなど試しましたが、表示されません。
???みたいに出てくれれば良いのですよね?自分の場合、該当部には何も表示されません。

68:NAME IS NULL
08/02/12 09:18:15
サロゲートペアの対応はどうなってんの

69:NAME IS NULL
08/02/12 16:00:40 nqXO5xFa
メンテナンスの際などにローカルの mysql の root@localhost
からの接続しか受け付けないようにするために簡単な方法はありますか?
一応 iptables で遮断したりして外からのアクセスは受けないように
したりして気をつけてるんですが,根本的な解決になってないような気がして.

70:NAME IS NULL
08/02/12 16:26:29
>>69
iptables で全ポートふさいだなら、出入り口無くなってるんだから十分では。

71:NAME IS NULL
08/02/12 16:32:47
>>69
LANの線抜いて、直結のコンソールからメンテ。
これで >>69 しかいない夢の世界。

72:NAME IS NULL
08/02/12 17:12:59 nqXO5xFa
UNIXソケット経由での接続もあるかも,とか,疑心暗鬼に.
FLUSH TABLES WITH READ LOCK;
で固めてしまっても,ダンプからの回復とか
しようと思うと結局 UNLOCK TABLES; しないといけないし.

73:NAME IS NULL
08/02/12 17:34:31 nqXO5xFa
普通のアプリは unix ソケット経由じゃないから
TCP ポート使わないようにしてデーモン上げ直して
ローカルコンソールから mysql コマンド
(これは unix ソケット経由で接続?)でメンテすればいいか.
別にローカルコンソールじゃなくても SSH 経由でもいいけど.

74:NAME IS NULL
08/02/13 23:03:56 kRFJlRI3
質問です。
PHPからSQLコマンドを叩いてINSERTする際に、そのこれからINSERTする行のidを知るにはどうすれば一番効率的でしょうか。

75:NAME IS NULL
08/02/13 23:35:04
ここはQueryBrowserのこと聞いても大丈夫でしょうか?

76:75
08/02/13 23:39:08
QueryBrowserで、右側のテーブル名ダブルクリックすると、上のクエリ窓に
SELECT * FROM [テーブル名] [テーブル名のイニシャル]
が出ますよね?
それで、ある一部のテーブル名だけ
SELECT * FROM '[テーブル名]' [テーブル名のイニシャル]
とシングルクオートで囲まれて出てきます。
このせいでアプリケーションでの検索ができません。
何が原因でしょうか?テーブル作成時もほかのテーブルと同じように作ったのですが・・・

77:NAME IS NULL
08/02/14 00:03:53 W0dvrvI0
>>76
テーブル名何よ?

78:NAME IS NULL
08/02/14 00:10:31
>>77
inner と outer です。
これ予約語かなんかなのでしょうか?
bgm とか frame とかは問題ありません

79:NAME IS NULL
08/02/14 00:52:32

新しいデータエンジンFALCONではトランザクション内でセーブポイントを
セットすることができるらしいのですが、
このセーブポイントて何に役に立つのでしょうか?


80:NAME IS NULL
08/02/14 02:24:45
セーブポイントって教会だけだっけ?

81:NAME IS NULL
08/02/14 03:44:12
宿屋に泊まってもセーブできるお

82:NAME IS NULL
08/02/14 09:10:23 +eBGuLyL
>>81
あれ,そうだったけか.
すでにすっかり忘れてるな,俺.
最近はケータイでできるみたいだしやってみるか.

83:NAME IS NULL
08/02/14 09:32:46
希望のほこらでも出来るよ

84:NAME IS NULL
08/02/14 11:41:28
>>78
予約語。
JOINの時使うでしょ?


85:NAME IS NULL
08/02/14 11:54:13
>>84
そうなのですか。JOIN使ったこと無かったのでわからなかったです。
ありがとうございました

86:NAME IS NULL
08/02/14 16:49:03 DlPYtTfB
自己結合したものをinsertで挿入していきたいのですが、
そのとき、それぞれに上からnumberをつけることはできませんか?
できるならどのようにすればいいか教えてください。

87:NAME IS NULL
08/02/14 23:38:43
すみませんが、質問です。

MySQLでEXPLAIN を実行すると、実行プランは表示されますが、実際にかかっ
た時間は表示されません。
クエリの各部分の実際の実行時間はどうやったら取得できるのでしょうか?
(PostgreSQL の EXPLAIN ANALYZE に当たるような機能のことです)

88:NAME IS NULL
08/02/15 00:34:57

MySQLでコネクションプールを使うと性能が良くなると聞いたのですが、
コネクションプールとは具体的に何のことでしょうか?

いろいろネットで調べてみたのですが、説明が難しくていまいち理解ができないです。。
自分のイメージとしては、通常クライアントから接続がある度にスレッドを生成しているものを、
コネクションプールというものを使って、最初からスレッドを生成しておき、
それを使いまわすというイメージでよいでしょうか?


89:NAME IS NULL
08/02/15 06:28:27
>>87
MySQLクライアントでそのまま実行したらでるけどそれじゃだめなん?

mysql> select * from customer where c_id = 400;

10 rows in set (0.32 sec)

>>88
あってるよそれで。
でもMySQLは新規接続もともと速いから性能向上度合いは少ないよ。
Oracleだと新規接続0.1秒とかかかったりするのでコネクションプール必須。

90:NAME IS NULL
08/02/15 17:03:12 vc/j93id
where amount1+amount2 > 2000

だとインデックスは使われないですが、何か良い方法はないでしょうか

91:NAME IS NULL
08/02/15 17:10:08
>>79
InnoDBにもあるよ > savepoint

トランザクションを入れ子にしたいと思ったことがある人には有用

92:87
08/02/15 17:41:17
>>89
> MySQLクライアントでそのまま実行したらでるけどそれじゃだめなん?

ありがとうございます。残念ですが、あまり良くないです。
SQL全体にかかった時間ではなく、細かい実行プランが表示されて、その各パー
トでそれぞれどれだけ処理時間がかかったかを見たいのです。


93:NAME IS NULL
08/02/15 18:35:46 cVT3m7qO
他のPCからもMySQLにアクセスできるようにしようと思ってとりあえず
以下のようにテストユーザーを作ってみました。

grant all on *.* to testUser identified by 'test';
そして、以下でログインできました。
mysql -u testUser -h 127.0.0.1 -p

ですが、ローカルから以下のようにするとパスワード無しでログインできてしまうのですが、パスワードは利かないのでしょうか?
mysql -u testUser

宜しくお願いします。
(mysql5.0.54)


94:NAME IS NULL
08/02/15 19:05:33
自己結合させて、できたときに上から順番に番号ふっていきたいんですが、
どうしたらよいでしょう?

95:NAME IS NULL
08/02/15 19:40:20
MySQL InnoDBのテーブルを mysqldump でバックアップする場合、mysqldは止める必要はあるのでしょうか?

96:NAME IS NULL
08/02/15 21:04:18
selectでmtimeで降順ソートしたデータの11番目から配列に格納したい。どのようにwhere節を記述すればうまくいくでしょうか。
以下カラム
id : name : titlebody :mtime : (modification time)

97:NAME IS NULL
08/02/15 21:05:19
訂正です。「配列に格納したい」っていうのを「データを表示したい。」に読み直してください。すいません。PHPと連携してるもんで、、、

98:NAME IS NULL
08/02/15 23:58:00
select id, name, titlebody, mtime from hogeTBL order by mtime desc limit 10,(取得する行数);

99:>>88
08/02/16 08:57:40
>>89
ありがとうございます。

>>95
mysqldとめたら、mysqldumpできないんじゃあるまいか?


100:NAME IS NULL
08/02/16 13:34:51
MySQLにファイル入れて管理したいと思うのですが、
I/Oとかどんな感じでしょうか。

ファイルではなく、
普通に数百MBのデータベースを処理するだけで、
かなりI/Oがあがってしまい、CPUとかメモリには余裕があっても
かなり速度が遅くなってしまいます。
データベースで管理すると管理面で便利そうな反面、
ここがボトルネックになりそうな気がしてます。

識者の方アドバイスおながいします。

101:NAME IS NULL
08/02/16 17:01:59
>>100
数百MB程度で遅いのなら、インデックスが適切に作成されていない可能性あり。

「ファイル入れて」って、「本来ファイルにあるべきデータをテーブルに入れて」って意味?


102:NAME IS NULL
08/02/16 17:04:40
>>94
set @cnt=0;
select @cnt:=@cnt+1,col1,col2,col3 from tbl1, ......


103:NAME IS NULL
08/02/16 17:06:11
centos5でmysql4,1を使っています。
mysqldを削除してしまいました。
yumでmysql-serverをインストールしても見つからないのですが、
mysqldはどこで落とせますか?

104:NAME IS NULL
08/02/16 20:03:14
>>100
説明内容が複数の意味に取れる部分が多すぎて、
内容がはっきり掴めません。
動画ファイルの扱いなどで例えてください。

105:NAME IS NULL
08/02/16 22:43:10
ガンダムに例えると

106:NAME IS NULL
08/02/17 00:47:28 lcJDrNJv
winで、perlからmysqlを使っているのですが、
insert into a(a) value("あ");
コマンドラインで打つとうまくいくのですが、perlのDBIではうまくいきません。助けてください。

107:NAME IS NULL
08/02/17 00:51:27
そらぁ、Perlの方の問題であって、ここの問題じゃないっしょ

108:NAME IS NULL
08/02/17 01:56:04
>>106
文字コード

109:NAME IS NULL
08/02/17 19:27:17
>>106
「うまくいきません」を具体的に。

110:NAME IS NULL
08/02/17 22:02:44 mw1ACUy/
ゆりしー(´;ω;`)かわいそうです みなとらじお 君が主で執事が俺で 02
URLリンク(www.nicovideo.jp)

伊藤静「じゃあ、次もwww」
後藤邑子「斬ったほうがいい?www」
伊藤「次は斬る?www」
後藤「どうするww」

伊藤「ペンネーム『心が綺麗な天使』から頂きましったww(フンッwww) 私はこの日本に住むのにはピュアすぎます。どのようにしたら天使のような私がこの今の日本に馴染めるのでしょうか?」

後藤「.........ウザい」

二人「キャッハハハハハwwwww」

伊藤「ちょほんとさあ、大丈夫?www」

後藤「おい天使、おいおい自称天使ww」

伊藤「自分が天使だと思ってること自体がちょっと間違ってんじゃないの?っていうねwww」

後藤「うん。ね。ちょっと軽く(精神病院に)通院してみたほうがいいんじゃないの?www もしくは、今の日本に馴染めるようにちょっと汚れちゃえよwwww」

伊藤「それかもう日本出て行ったらいいんじゃないの?www」

後藤「天使が住める国にwwwwwww なんかエルフの国とかに行ったらいいんじゃないの?wwww」

伊藤「妄想の中とかに(プフッww)行っちゃえばいいんじゃないのwww」

後藤「コワイヨーwwwコワイヨーwwwww」

二人「クックックックwwww」


111:NAME IS NULL
08/02/17 22:15:36
>>110
オレが責任をもってゆりしーを嫁にするから、板違いな話題は控えてくれ

112:NAME IS NULL
08/02/18 11:34:56
すみません、質問させてください。

まずは環境を。
OS:CentOS release 4.6 Linux version 2.6.9-55.0.12.ELsmp
MySQL:4.0.27

やりたいことは、mysqlとWebデータのバックアップを1日1回で取りたく、
ググルで『mysqldump .sh』などで検索し、それを参考にbackup.shという名称で以下を作ってみました。

#!/bin/sh
cd /home/hoge
tar zcvf /mnt/nas/web-backup/`date +%Y%m%d`/hoge.tar.gz ./web
tar zcvf /mnt/nas/web-backup/`date +%Y%m%d`/hoge-cgi.tar.gz ./cgi-bin
mysqldump -uroot -phoge hoge --opt > /mnt/nas/web-backup/`date +%Y%m%d`/hoge.sql

パーミッションを700に変更し、crontabに登録。
結果、hoge.tar.gzとhoge-cgi.tar.gzはバックアップが取れているのですが、
SQLデータだけファイルサイズ0でバックアップを取れません。

cronではなく手動で、/home/hoge/backup.sh とやるとSQLデータもキチンと取れます。

まずはどこから疑ったら良いでしょうか?
宜しくお願い致します。

113:NAME IS NULL
08/02/18 13:18:00
手動で backup.sh を叩いて動いたときのユーザが root ではない、とか

114:NAME IS NULL
08/02/18 13:19:48
>>113
ごめん取り消し
mysqldump のパスが通ってないだけとか

115:NAME IS NULL
08/02/18 13:26:28 Ev8JrmO8
Handler_read_rnd_next が異様に高いのだが(500Mとか)
この原因を突き止めるにはどうすればいいのだろうか.
でかいウェブアプリで,どの処理がこいつの原因に
なっているのかわからず途方に暮れています.

とりあえずチューニング中です,とか何とか言って
ごまかしているけど.

116:112
08/02/18 15:52:54
>>114
有難う御座います。
パスが通っていないのが原因みたいです・・・orz

/usr/local/bin/mysqldump -uroot -phoge hoge --opt > /mnt/nas/web-backup/`date +%Y%m%d`/hoge.sql
に改めたところ、ちゃんとデータが入ったファイルが生成されました。

今まで気にしたことが無かったのですが、いつもは echo $PATH でパスの通りを確認した時
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:(以下略
と、『/usr/local/bin』の記述があるのでパスが通っているものだと思っていたのですが、
crontabの時はrootとは別の.bash_profileが機能しているのでしょうか?

ついで質問で申し訳ないのですが、ご教授いただけますでしょうか?
宜しくお願い致します。

117:NAME IS NULL
08/02/18 19:59:30
>>116
mysql じゃなくて unix の話になっちゃうけど、、、
cron で起動した場合は root ユーザがログインして実行する訳じゃないから
.bash_profile は読み込まれない
必要な環境変数は crontab ファイルの中に記述するか
起動されるスクリプトの中に書いておく

118:112
08/02/18 20:44:41
>>117
すみません、『ここはMySQL板です』って言われるの覚悟だったのですが
話の流れでお聞きできればとおもったので。
/etc/crontabの中にもPATH=設定があるんですね・・・勉強になります。
ご教授有り難う御座いました。


119:NAME IS NULL
08/02/18 20:47:17 DnOVHGDT
大規模サイト作ってる最中なんだけど普通DBは一個だけでいいよね?

120:NAME IS NULL
08/02/19 08:34:43
>>119 どのぐらいが大規模かテーブル数ぐらい書かないとなんともいえないぞ
1つのDBでやる必要性と複数DBがもてるのかどうか
ただ、モールのように複数店等やる場合セッションの引き継ぎ等で
同一DBでやる場合もあるから一様にいえないよね

121:NAME IS NULL
08/02/19 11:57:30
そんな質問してるぐらいだから1個でいいにきまってんじゃん

122:NAME IS NULL
08/02/19 12:51:39
>>120
今はとりあえずプロトタイプとして10涸ほどテーブル持ってる感じ
カラム数は多くても7,8涸で、まあ今後2つとも増やしていく予定

最初は複数DBで運営しようかと考えていたのだけど、ユーザー認証用のtbが既にあるサービスで使うように作ったDBの中に突っ込んじゃった訳ね


摘出してユーザー関連のDB作ってもいいのだけど、こういう作り方ありなのかな~と思ったので質問させてもらった

機能の拡張性考えたらやっぱりDB分割した方がいい?

123:119
08/02/19 13:02:21
ごめ、やっぱいままでのなし
inner joinで結合したりしてるから無理だ
やっぱ一つのDBで済ますしかないのかな・・・・

124:NAME IS NULL
08/02/19 13:06:35
MySQLってDB開発以外で役に立つのか?

125:NAME IS NULL
08/02/19 17:38:32
は…?

126:NAME IS NULL
08/02/19 21:30:21
というか、他の何に使おうとしてんの? w

127:NAME IS NULL
08/02/19 23:05:34
MyISAM や InnoDB のデフラグってしてる? 定期的にすべきもの?

128:NAME IS NULL
08/02/20 00:50:39
>>127
ものすごい時間かかるよね

129:NAME IS NULL
08/02/20 00:51:18
MySQLでlogという変数がありますが、これをONにするにはどうすればよいのでしょう?

mysql> show variables like 'log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log | OFF |
+---------------+-------+
1 row in set (0.00 sec)

MySQLのバージョンは、5.0を使っております。


130:NAME IS NULL
08/02/20 07:39:29
>>129
my.cnf に次のように書いて mysqld を再起動。

[mysqld]
log = filename


131:NAME IS NULL
08/02/20 11:07:44 u/qQnTAY
ストアドファンクション使用するときに
テーブルロックがかかってしまう問題は
5.1では解決された(る)のでしょうか?

132:NAME IS NULL
08/02/20 11:24:41
>>127
デフラグってどうやってやるんだっけ?
一度ダンプして入れなおすしかないって
聞いたことあんだけどアレ嘘?

133:NAME IS NULL
08/02/20 14:37:10 t1FXjQC1
素朴な疑問ですが、トランザクション・コミットを使用するには
InnoDBにしなければいけない、MyISAMだと使用出来ないと
マニュアルに書いています。

しかし、速度の面からすべてのテーブルをMyISAMにしているのですが、
InnoDBにする利点ってトランザクション・コミット以外にあるのでしょうか?

134:NAME IS NULL
08/02/20 19:17:37
書き込んでる途中に読める

135:NAME IS NULL
08/02/20 20:20:46 Sgz5aacp
MySQLの文字セットをEUCにするのにどうすれば良いのでしょうか?
本やらネットで調べて

/etc/my.cnf に

[mysqld]
default-character-set=ujis
[client]
default-character-set=ujis
[mysql]
default-character-set=ujis
[mysqldump]
default-character-set=ujis

と書き加えてみたのですが、何か上手くいってない雰囲気なのですが。

136:NAME IS NULL
08/02/20 20:47:07
>>135

うちは

cat /etc/my.cnf
[mysql]
default-character-set=ujis

[mysqld]
default-character-set=ujis

で上手くいってますが。

137:NAME IS NULL
08/02/20 21:17:18 o//3cEXb
同じデータ構造を持つテーブル群のデータベースを
一個のデータベースにまとめたいのですが、
mysqldumpでダンプしてからリカバリーしようとすると、
新しいものに上書きされてしまって、一つにまとめることができません。

なにか良い方法はないでしょうか?
宜しくお願いします。
mysqldumpがテーブル毎にダンプできればいいのですが・・・

138:NAME IS NULL
08/02/20 22:12:56
>>137
MERGEテーブルなんてどうだい?
URLリンク(dev.mysql.com)

139:NAME IS NULL
08/02/21 00:31:24
>>132
OPTIMIZE TABLE という命令がある。

140:NAME IS NULL
08/02/21 00:33:12
>>137
テーブル毎にダンプできるよ。
というか、mysqldump の出力はテキストなんだから好きに加工すればいい

141:NAME IS NULL
08/02/21 08:58:10
/etc/my.cnfで以下のようなdataのディレクトリを設定したのに、
なぜか、/var/db/mysql/{database名}以下にデータが出来てしまい
困っております。
[mysqld]
datadir = /home/xxxx/db

データのディレクトリを変えられるところって他にありましたでしょうか?
ちなみに、環境はFreeBSD6.3R+MySQL5.2です。

どうかお助け下さい

142:NAME IS NULL
08/02/21 13:24:45
>141
その /home/xxxx/・・・
ってのは、ユーザーのホームdirっぽいんが、ユーザー:mysqlが、読み書き出来るパーミッションがあるのかね?

143:NAME IS NULL
08/02/21 13:30:57 AwIQMyrc
むしろ mysqld をそのユーザの権限で動かす!

144:NAME IS NULL
08/02/22 15:51:51
>102
遅くなりましたが、ありがとうございました。

145:NAME IS NULL
08/02/22 21:59:19 W58pTgXp
質問させてください。

c1 c2

001 abc
001 hyu
002 ded
002 iopsa
001 yui

こんな感じにテーブルがあるとします。

これを一度の処理でこんな感じに取り出したいです。

001 abc
001 hyu
001 yui
002 ded
002 iopsa

distinct を使ったりしてみたのですがどうにも上手くいかず…
ご教授お願いします。

146:NAME IS NULL
08/02/22 23:41:31
>>145
意味わからん
select c1, c2 from TBL order by c1,c2;
じゃねーの?

147:NAME IS NULL
08/02/22 23:55:03
mysqlをwindowsXP で勉強しているのですが、
INSERT INTO recipe (aaa,bbb) VALUES('日本語',1);
がエラー1366で実行できません。
設定はutf8です。
INSERT INTO recipe (aaa,bbb) VALUES('abc',1);
であれば、実行できます。

もしかして、utf8に設定していると、コマンドから直接入力が無理なのですか?


148:NAME IS NULL
08/02/23 00:12:14
>>147
cp9332とかが良いってばっちゃが言ってた

149:NAME IS NULL
08/02/23 00:46:54
>>148

cp932

150:NAME IS NULL
08/02/23 10:35:49 plV93xd4
SQLの実行時間を図るのにタイムウォッチを使っているのですが、
MySQLで便利なSQLの実行時間がわかる方法ってないでしょうか?


151:NAME IS NULL
08/02/23 15:48:17 M9EfVzmK
mysql4.1

select
a + b
from


こんな感じの場合、a,bどちらかがnullだと結果全部nullになるんですが、
nullは0とて計算したい場合、どのようにすればよいんでしょうか?
m(_ _)m

152:NAME IS NULL
08/02/23 16:02:37 qXPAWXxv
innoDBを使うとSELECT COUNT(*)の処理がMyISAMと比べて桁違いに遅いと思いますが、
COUNT処理を高速化するために、何か方法はないでしょうか?

前にどっかのサイトで、innoDBでのCOUNT処理を速くするテクニックが書かれていたと思うのですが、
どこだか見つけることができませんでした。

宜しくお願いします。

153:NAME IS NULL
08/02/23 16:39:57
MySQL5.1から行レベルレプリケーションというものが採用されたということなのですが、
行レベルレプリケーションとは具体的にはどういうものでしょうか?


154:NAME IS NULL
08/02/23 16:45:15
>>152
innodbのcount(*)検索が遅いのは、クラスタインデックスという仕組みのためらしいです。
これを怪傑する方法としては、force keyを使って、
主キーインデックス以外のカラム(もちろんindexはらないとだめ)を
指定するのが常套手段だったと思います。

これの方法だと、1レコードのサイズが大きいほど劇的に性能あがりますね。


155:>>154
08/02/23 16:47:39
訂正。
force keyじゃなく、force indexだった。
select count(*) from test_table force index(col);


156:NAME IS NULL
08/02/23 16:52:23
>>151
そういうときは、caseだ。ばか。

157:NAME IS NULL
08/02/23 17:18:48
>>151
select ifnull(a,0)+ifnull(b,0) ...

158:NAME IS NULL
08/02/23 17:32:11
>>153
今まではクエリを転送してスレーブ側で実行していたが、変更されたレコードデータその物を転送するようになった。

159:NAME IS NULL
08/02/23 23:01:13 rFdPd3m0
すみません。ビューを作成時のSQL文にバグがあったので、作成時のSQL文を確認したいのですが、
どのようなコマンドを打てばいいのでしょうか。

160:160
08/02/23 23:20:53
事故解決しました。
HDDが飛んでしまったようです。

161:NAME IS NULL
08/02/24 11:39:20
>>115
Handler_read_rnd_nextはテーブルのフルスキャンで何行読んだかを
示しているので、log_slow_queriesに加えてlog_queries_not_using_indexesを
ONにするとどのクエリがやらかしてるのか分かると思う。

>>159
show create view XXX



162:NAME IS NULL
08/02/24 12:01:12
あるCMSをインスコしたときテーブルをいっぱい作成されました。

そのテーブルとテーブル内のフィールドのCollationの値を
すべて変更したいんですが、どうやるのが一番かっこいいんでしょうか?

おねがいします。phpMyAdminは使えます。

163:NAME IS NULL
08/02/24 14:30:31
>>162
DROP DATABASE "DB名";
これが一番最強でクール。

164:NAME IS NULL
08/02/24 14:46:35
>>163
すでにデータが少し入ってるので消したくないんです。

165:NAME IS NULL
08/02/24 15:13:59
MySQLクライアントで10万件のレコードをselectしたとき、最後に
100000 rows in set (1.26 sec)
と表示されます。
1.26secかかったことになっているのですが、実際には25秒かかっています。(

実際の実行時間を表示するにはどうすればよいのでしょうか?


166:NAME IS NULL
08/02/24 16:05:37
25秒ってのは表示とかよけいな処理を含んでるんじゃないの?

167:NAME IS NULL
08/02/24 16:09:06
mysqlってテーブル単位でアクセス権設定できますか?
hogeデータベースのfugaテーブルのみにアクセス可能なユーザを
設定したいのです。

168:NAME IS NULL
08/02/24 16:13:12
10万件のレコードを1秒かそこらで取得できるわけないでしょw
釣りですか?

169:NAME IS NULL
08/02/24 16:47:56 PjrHaGxS
ディスクのIOにかかる部分はシステムコール内で
消費されているからなぁ.その分は1.26秒には
入っていないでしょ.

170:NAME IS NULL
08/02/24 18:22:21
あんまり正確じゃないけど

select count(*) from
(
計りたいSQL
);

というのをよくやる

171:名無しさん
08/02/25 00:10:58 9FzPKS4K
MYSQL導入するのに丸一日かかった
頑張って勉強するお

172:NAME IS NULL
08/02/25 00:24:21
>>171
administratorとQueryBrowserいれとけよ、便利だから

173:NAME IS NULL
08/02/25 00:30:39
>>165
1.26secというのはクエリをサーバーに投げてから結果が返ってくるまでの時間。
25秒は表示にかかった時間も計っているのでは?

174:NAME IS NULL
08/02/25 00:31:59
>>162
alter table xxxx convert to charset utf8
とか?

175:NAME IS NULL
08/02/25 00:34:07
>>170
表示をころすわけね

176:NAME IS NULL
08/02/25 01:53:59 z+rzzFbc
URLリンク(dev.mysql.com)
↑で
「ストアド ルーチン内 (ステートメントをストリングとして動的に構築し、実行する場 ) で動的 SQL を使うことはできない。」
という記述を見つけたんだけど、ストアド内でSQL文字列を構築して実行っていうのができないってことですか?

177:NAME IS NULL
08/02/25 02:13:10 z+rzzFbc
set @vals = "'a','b','c'";
select * from tbl where fld in (@vals);

@valsが動的に変わる場合、↑のようなことをやる良い方法はないでしょうか?

178:phpMyAdminの使いかた
08/02/25 03:07:09 Zgifsms/
phpMyAdminについて質問があります。

現在、次の環境でphpMyAdminをインストールしようとしいるのですが最後の"pma"
ユーザに対するパスワードの設定がうまくいきません。
その為、動作確認の為に次のURLにアクセスをしたところトップページ
は表示されるのですが、幾らパスワードを入力しても弾かれてしまいます。(エラー発生)

URLリンク(localhost)
【エラーメッセージ】
  エラー #1045 - Access denied for user 'pma'@'localhost'
  (using password: YES)
【環境】
  ・Linux(CentOS5)・MySQL5・PHP5
  ・(phpMyAdmin-2.11.4-all-languages-utf-8-only
   (これをインストールする予定)
【phpMyAdminの設定ファイル】
  # vi config.inc.php
  17 $cfg['blowfish_secret'] = 'tekitounamoziwoireta';
  
  /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
  37 $cfg['Servers'][$i]['controluser'] = 'pma';
  38 $cfg['Servers'][$i]['controlpass'] = 'pass';

どうすればphpMyAdminを使える様になるのでしょうか?



179:phpMyAdminの使いかた
08/02/25 03:20:06 Zgifsms/
補足です。

【参考サイト】
  URLリンク(www.okku.jp)(Linux)CentOS+4.1%A4%C7phpMyAdmin%A4%F2%BB%C8%A4%A6
【エラーが発生するコマンド】
  set password for pma@localhost=password('pass');
【エラーメッセージ】
  ERROR 1133 (42000): Can't find any matching row in the user table

どなたか詳しい方お願い致します。

180:>>165
08/02/25 10:42:16
みなさん、ありがとうございます。
みなさんは、性能実測行うときにどのような方法でやられているのでしょうか?
私は、時計使ってやっているのですが、、


181:NAME IS NULL
08/02/25 11:28:26
>>179
MySQLにpma@localhostが登録されてないんじゃね?

182:NAME IS NULL
08/02/25 17:10:30 pyl/7W05
6万行のテーブルにプライマリーキーで検索を掛けると、
300回に1回程度、実行速度が5秒くらいになることがあります。
アクセスが多い(平均35クエリー/秒)ので、それが原因かもしれませんが、
他にひっかかりそうなボトルネックになるような箇所は考えられませんね。

183:179
08/02/26 01:21:13 vmOg1J9D
>>181
MySQLの登録ユーザに"pma"を追加するという事でしょうか?
(つまり、rootユーザの様にコマンドラインからユーザを追加するSQLを
流すという事)


184:179
08/02/26 02:19:02 vmOg1J9D
>>181
ありがとうございます。
解決しました^^;


185:NAME IS NULL
08/02/26 09:47:14 yVz26w0r
InnoDBをMEMORYに変換しようとすると、TEXT/BLOG型はサポートしていないと
怒られるのですが、10000文字程度を格納しているフィールドがありVARCHARに出来ないのですが、何かよい方法はありますか?
ヨロシクお願いします。

186:NAME IS NULL
08/02/26 14:39:58
>>182
メモリが足りなくてスワップしてるとか

187:NAME IS NULL
08/02/26 22:58:36 1h0phFuN
page.txt revision.txt text.txtの3つのファイルを
mysqlにインポートしたいのですがERROR 1064 (42000)がでます

mysqlimport -u root -L corpus /dir/data/*.txt

mysqlimportコマンドのどこがいけないでしょうか

188:NAME IS NULL
08/02/26 23:34:15
>>187
エラーの詳細をkwsk
txtファイルの内容は間違いないの?
改行コードが2バイトになってるとか

189:NAME IS NULL
08/02/27 00:26:54
>>182
>300回に1回程度、実行速度が5秒くらいになることがあります。
このとき、MySQLクライアントでshow processlist;したら何かわかりませんか?


190:NAME IS NULL
08/02/27 01:44:17
start slaveしたら以下のエラーが出て、masterサーバとつなげません。

080227 10:20:35 [ERROR] Slave I/O thread: error connecting to
master 'replications@hoge:3306': Error: 'Lost connection to
MySQL server during query' errno: 2013
retry-time: 60 retries: 86400

たぶんerrno: 2013がその理由だと思うのですが、
このエラー番号の意味ってどこを見ればわかるんでしょうか?



191:NAME IS NULL
08/02/27 09:12:12 Ry3s+xrT
日時が入っているfield_nameに対して、日付のみに着目して
今日だけのデータを取りだしたい時に、下のようにやると、
INDEXが機能せず、フルスキャンになってしまいます。


TO_DAYS(NOW()) = TO_DAYS(field_name)


何か実装方法としていい方法はないでしょうか?お願いします。

192:NAME IS NULL
08/02/27 09:53:05
関数入れるとインデックスは使われません。
日時の場合は、当日以上翌日未満にすればよいです。

193:NAME IS NULL
08/02/27 12:19:22
今更ながらですが、トランザクションが必要がない場合に
INNODBとMYISAMって使い分けをした方がいいでしょうか?

データーベースの中にトランザクションを必要とするものがありまして、
全部INNODBにしているのですが、トランザクションを必要としないものを
MYISAMにするかどうか検討しています。

HPを色々見ても、大して変わらないという人や、むしろINNODBの方が速いという人までいて、
決めかねています。皆さんのご意見をお伺いできたらと思っています。
私は、5.1を使っています。ヨロシクお願いします!

194:NAME IS NULL
08/02/27 13:09:00
使い方次第

195:NAME IS NULL
08/02/27 14:47:14 3YI/hApE
MySQLはサンマイクロに買収されたのか。

196:NAME IS NULL
08/02/27 15:11:45
>>193
長短所を理解すれば答えはおのずと出るはずです。

>>195
それ、2,3月も前の話でしょ。 もうコバルトの話とかいらんでw

197:NAME IS NULL
08/02/27 20:50:25 IDLP0qwH
SELECT id FROM a INNER JOIN b USING(id) WHERE id='1'

として結果が0(ヒットしない)場合、WHEREの条件を無しにして
全体のレコードを取得したいと思います。
上記をどのように変更すればいいのでしょうか?

198:NAME IS NULL
08/02/27 21:03:08
SELECT id FROM a INNER JOIN b USING(id) WHERE id=id

199:NAME IS NULL
08/02/27 21:51:08 IDLP0qwH
>>198
すみません、あくまで「id=検索値」の結果が無かった場合に
全体のレコードを取得したいので、最初から全体を取得するのではないです。。

200:NAME IS NULL
08/02/27 22:08:07
無かった場合に実行すればよい

201:NAME IS NULL
08/02/28 00:09:47
>>193
そのシステムが命に関わるような場合、迷わずInnoDB
そのシステムが途中でデータ消えてもいいのでとにかく早くしたい場合MyISAM
(MyISAMでも一時間に一回バックアップとればそんなに問題にはならないでしょう。)


202:NAME IS NULL
08/02/28 00:26:11
InnoDBって遅いってイメージがあったけど、
実際違うなら、トランザクション使えるし、InnoDBの方がよくねぇ?

203:NAME IS NULL
08/02/28 00:34:52
>>201
このMyISAMならデータが消えるって、何を前提にしてんだ?

204:NAME IS NULL
08/02/28 02:13:50
>>203
>>201じゃないが、実際に両方とも運用していると、
MyISAMは一ヶ月に1回位、データがクラッシュする。
「XXXX marked as crashed」とかっていうエラーを吐き出す。
その場合は、REPAIRすると95%は直るが、5%はREPAIREも失敗する。

信頼性を犠牲にして速度を速めているのがMyISAMという認識でいる。

205:NAME IS NULL
08/02/28 09:41:04
MyISAMは確かに壊れやすいと思う。
読み出しと重ならなくても、更新が多い場合は避けるようにした。
追記だけとか、読むだけのテーブルなら良いと思うけど。

あんまり使ってないけど、MyISAMでもFixedなら壊れたことはないかな。

206:NAME IS NULL
08/02/28 10:30:38
っていうかDBで壊れやすいって致命的な欠陥じゃね?
車に例えれば、時々ブレーキが利かなくなることがあるってことだろ?

Oracleと比べるのは酷だが、どんなに機能が充実してOracleに近づいたといっても、
クリティカルなところ(お金に関わる部分や基幹業務、公共インフラ)では採用できないDBだな。

207:NAME IS NULL
08/02/28 13:16:55
当たり前です

208:NAME IS NULL
08/02/28 14:20:53 vUxSrTHj
かなり大きなvarcharを抱えているテーブルで文字検索をしたいのですが
全文検索用のインデックスを作って検索を高速化してくれるようなMySQLのアドオンってないでしょうか?
やっぱり正攻法でそういうことは全文検索用のソフトウェアにさせるべきなのでしょうか?

209:NAME IS NULL
08/02/28 14:57:51
>>206
それはちょっとちゃうな。
君はコンビニに買い物に行くとき、防弾チョッキ着て、護衛を付け、
遭難用携帯食料3日間分を念のため持って出かけるわけかい?

210:NAME IS NULL
08/02/28 19:00:53
>>206,209
どっちも両極端な意見すぎ!
特徴を理解した上で適材適所で使え。

211:NAME IS NULL
08/02/28 23:43:23
>>206
誰もMySQLの信頼性の話してない。
壊れやすいといっているのはMyISAMの話。
MyISAMの信頼性の話をしている。

MyISAMの信頼性が低いのは事実だが、
全体バックアップ+バイナリログで普通に復旧できるので壊れてもすぐに復旧できる。





212:NAME IS NULL
08/02/28 23:46:25
話は変わるが、MyISAMってみんななんてよんでるの?
おれの周りでは、"ミィザム"とか"マイサム"とか
"エムワイアイエスエーエム"とかいろいろなんだが、
統一しないか?


213:NAME IS NULL
08/02/29 00:00:14
勲は俺のもの での統一でいいと思うけど

214:NAME IS NULL
08/02/29 00:41:08
>>208
Tritonn

215:NAME IS NULL
08/02/29 00:42:11
いや、MyISAMだって、OSのクラッシュとかがなければ壊れないでしょ。フツー。

216:NAME IS NULL
08/02/29 01:33:15
IO弱いと壊れやすいんじゃね?

217:NAME IS NULL
08/02/29 03:23:40
mysql4.1から5.0のサーバーに移行しようとしてmysqldumpで全てのDBのバックアップを取ったんですが
なぜか新しい環境でユーザーは適用されているもののパスワードが反映されないです。

パスワード無しで接続できてしまい、逆に前の環境のパスワードを指定すると弾かれます。

mysql.userテーブル見てみたんですが、一応それぞれのユーザーに別々のパスワードは付与されているみたい。

なんでパスワードが適用されないんでしょう
教えてえろい人

218:NAME IS NULL
08/02/29 11:38:26
changelogみると、MyISAMが壊れるの直したってよく出てくるよね。

219:NAME IS NULL
08/02/29 13:28:53 q3z3v3NL
>>214 THX
こういうものがあったとは.
namazu とかで別途全文検索機能は実現するかぁ,
とか思っていたけどこりゃ便利そうだ.
というか,MySQL の FULLTEXT っていつの間にか
UTF-8にも対応していたのか.といっても分かち書きが
必要なので結局は Tritonn のお世話にならなきゃってことですね.

220:NAME IS NULL
08/02/29 18:05:13
MySQLで問い合わせ時間を得たいのですがどうすればいいでしょうか?

mysql> select sum(1+2) as sum from dual;

+----------+
| sum   |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)

この場合、sumと問い合わせ時間(0.00 sec)を返してほしいです。

221:NAME IS NULL
08/02/29 18:24:59
>>220
度々似たような質問を見かけるんだが、
前スレにもあったように、問い合わせの時間が表示されるのは、mysql(クライアントプログラム)の独自機能であって、
mysqld(サーバー)の機能ではない。

よって時間を得たければ、例えばPerlなら、use Time::HiRes ; とすりなり、
PHPなら microtime(true) するしかないじゃないの。(てか俺はそうしてる。)

222:NAME IS NULL
08/02/29 19:16:51
mysql v4.0.20で文字コードにujis使用のサーバから
Win機でODBC接続してVB6でデータ取得について質問

MyODBC-3.51.06試したけどダメだった...
で myodbc-3.51.06-conv_ujis.zip 拾って使ってます。

HPからのリンク切れてるけどこれ使ってもいいの?

223:NAME IS NULL
08/02/29 21:18:05
あるサーバから別のサーバへMySQLのデータベースを
移動したいのですが、
.frm .MYD .MYI をそのまま移動させて
使用することってできるのでしょうか?
以前SQL文でエクスポートしてたんですが、
文字化けとかでかなり手こずった記憶がありまして、
できれば簡単な方法が良いなと思っています。

224:NAME IS NULL
08/02/29 21:26:22 dsP0ZzyD
mysql 5.0.27 でレプリケーションを組んだのですが、slaveサーバーでsyntax
エラーを起こします。
mysqlのバージョンは一緒だし、文字コードも show variable で見るとmasterと
slaveは同じものだし、、、
どうもバイナリー項目の辺りでおかしいのかな?と思いますが、なぜだかわかりません。
どなたか、解決方法ご存知の方、おりませんか?


225:NAME IS NULL
08/02/29 23:13:19 i7o2Y2Yb
IDEXをいくつか貼ってあるテーブルにINSERTをする場合に、
1万件の場合と、1000万件の場合で処理速度が大幅に変わりますか?

ログ系のテーブルなので、これからどんどん溜まっていったときに、
どんどん処理が遅くなるんじゃないかと不安に思っているのですが・・・

InoDBは確かBTREEだったと思いますが、BTREEの作成コストがその大きさに依存するかどうか知りたいです。
宜しくお願いします。

226:NAME IS NULL
08/03/01 01:32:50
>>223
同じバージョンならできる。

227:NAME IS NULL
08/03/01 01:33:24
>>224
バイナリログの中のエラーになったクエリを見ればいいんじゃないかな。

228:NAME IS NULL
08/03/01 10:51:32
レプリケーションについて教えてください。

レプリケーションの方式として、
1master-複数slave
という方式と
mutil-master
という方式があるみたいなのですが、
どういう場合にどちらを選ぶべきなのでしょうか?


229:NAME IS NULL
08/03/01 11:49:48 BE:835119239-2BP(0)
>>224
変わる。
もちろんインデックスのサイズとメモリ量による。
ログ系のテーブルなら、そんな複雑なインデックス貼らないだろうし(created_onとserver_idとstatusくらいか)
1000万件くらい大丈夫だと思うが。だめならパーティショニング。
それよりストレージエンジンをどうするか考えたほうがいいと思う。InnoDBかMyISAMかARCHIVEか。

>>228
シングルマスタはマスタがフェイルポイントになる。
マスタが死ぬと更新がまったく出来なくなる。
スレーブ1台をマスタに昇格させて復旧させる。

デュアルマスタはフェイルポイントがない。
auto_increment問題は、auto_increment_incrementとauto_increment_offsetを設定すれば大丈夫。
unique keyの重複したINSERTと、同一行の更新をどうするかが問題となる。
追加・更新のクエリを片方に寄せるというのも手。

3台以上のマルチマスタは手間の割にあまり利点ないので略。

230:NAME IS NULL
08/03/01 17:49:39 4HUS0plA
デュアルマスタってのはお互いがお互いのマスタであり
スレーブであるっていう設定のこと?
んで,3台以上ってのはそれをリング状にしたってこと?

231:NAME IS NULL
08/03/01 19:12:32
自鯖のMySQL入れようと思うんだけど5を入れとくべき?

232:NAME IS NULL
08/03/01 19:13:47
うん

233:NAME IS NULL
08/03/01 19:40:11
4系でもいいと思うけどな

234:NAME IS NULL
08/03/01 20:15:00 BE:1391863695-2BP(0)
>>230
そう。
あと、それぞれのマスタにスレーブをぶら下げたりもできる。

235:NAME IS NULL
08/03/01 23:52:18 4HUS0plA
>>234
デュアルマスタまではやったことあるけど,
リング状ってのはまだやったことないな.
同じデータベースに対していどちらのマスタでも
更新ってのは怖くてやったことがない.

236:NAME IS NULL
08/03/02 01:26:02
>>228
俺もあまりよくしらないが、考えてみた。

まず、1マスタNスレーブの場合。
参照するたのslaveサーバが複数あるのだから当然、参照の負荷分散になる。
更新するためのmasterサーバも参照のアクセスと競合しないので、
負荷分散になるんだと思う。
>>229の指摘でマスタが壊れたら更新ができなくなるといっているが
それはmutil-masterも同じことだ。
確かに更新はできるが、データの不一致が起こるので、
むしろ障害発生時に更新をとめるような仕組み必要ではないか。

次、multi-masterの場合。
1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、
参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う。
更新は、あるサーバの更新が他のサーバ全てにレプリケーションされるわけだから、
更新については全く負荷分散にはならないんだと思う。

>どういう場合にどちらを選ぶべきなのでしょうか?
結論としては、更新が比較的多い場合、1マスタnスレーブを考えるべき。
参照メインで更新が殆どない場合、mutil-masterということになるんだろう。



237:NAME IS NULL
08/03/02 02:24:27
覚醒せよ

238:NAME IS NULL
08/03/02 02:44:46 LX2+C4Nj
助けて下さい。
mysqlで、間違えてデータベースを作ってしまいました。
その間違いを訂正しようとして、mysqlに登録したroot権限で
入っても、何をしたら良いかわからなくて。。
全部無かったことにしたくて、アンインストールしたりしましたが、
またインストールしたら間違えた設定のまま消えません。
完全に消去するには、どうすれば良いのでしょうか?
ちなみにosはfedora8です。

239:NAME IS NULL
08/03/02 09:48:34
>>212
まいあいさむ

240:NAME IS NULL
08/03/02 09:50:37
>>217
4→5で認証方法変更されてるんだが


241:229
08/03/02 12:17:28 BE:773258055-2BP(0)
>>236
> >>229の指摘でマスタが壊れたら更新ができなくなるといっているが
> それはmutil-masterも同じことだ。

いいえ。

> 確かに更新はできるが、データの不一致が起こるので、

『データの不一致』はどのサーバ間をさしている?

> 次、multi-masterの場合。
> 1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、
> 参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う。

シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
# というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。

> 更新は、あるサーバの更新が他のサーバ全てにレプリケーションされるわけだから、
> 更新については全く負荷分散にはならないんだと思う。

ここだけは合っている。
しかし、5.1の行レプリケーションを考慮した場合は間違いになる。

全般的にめちゃくちゃだ。
レプリケーションの仕組みをもうちょっと学んだほうがいい。

242:>>236
08/03/02 15:14:39
>>241

>> 確かに更新はできるが、データの不一致が起こるので、
>『データの不一致』はどのサーバ間をさしている?
故障したサーバとそれ以外のサーバ。
たとえば、3台でリング上のレプリケーション組んでるとするだろ。
それぞれ、A、B、Cとする。データの流れは、A→B→C→A...とする。
Bが壊れた場合、AからCのデータの流れが途絶えるわけだから、
Cの更新はAに反映されるが、Aの更新はCに反映されない。

>シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
># というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
mutil-masterの話なのに、この話がでるのが意味不明。説明してほしい。

>しかし、5.1の行レプリケーションを考慮した場合は間違いになる。
そのとおりだね。間違いでした。


243:NAME IS NULL
08/03/02 15:23:45
レプリケーションって難しいねw
というか俺の頭が悪いのかorz

で、>>241に聞きたいのですが、
>どういう場合にどちらを選ぶべきなのでしょうか?
に対する答えは、>>236さんの答えでは不十分ってこと?
そこらへんを解説きぼんぬ。


244:NAME IS NULL
08/03/02 20:41:09 Fblr/lkn
selectの結果で実行するsql文を変更したいのですが
ストアドプロシージャ・ファンクションを使わずに
するにはどうしたらいいですか?
例sql文を教えてください。

245:NAME IS NULL
08/03/02 21:28:44
windows+linux のクラサバなんだけどjavaで動かしている時って
mysqlの文字コードはsjisにしてる?それともutf8?
vistaだとutf8が4バイトらしいんだが・・

246:NAME IS NULL
08/03/02 22:05:28
フハハ、utf-8は最大6バイトまであるわっ

247:NAME IS NULL
08/03/02 23:33:09
MySQLに限ってはutf-8だと3byteが上限
They can be encoded with 8, 16, or 24 bits, as in utf8

248:229
08/03/03 12:49:38
>>242
>>『データの不一致』はどのサーバ間をさしている?
> 故障したサーバとそれ以外のサーバ。
> たとえば、3台でリング上のレプリケーション組んでるとするだろ。
> (略)

そうだね。だから3台以上のマルチマスタはあまり意味ないよ。
と、すでに229に書いた。
考えるならシングルマスタとデュアルマスタだけにした方がいいだろう。
『データの不一致』はデュアルマスタの場合にはどうなる?
3台以上のマルチマスタしか考えていない?

>>シングルマスタでマスタを参照してもいいので、1台増える訳ではない。
>># というか、レプリケーションの時間差が許されない場面では普通はマスタを参照する。
> mutil-masterの話なのに、この話がでるのが意味不明。説明してほしい。

あなたは『1マスタNスレーブと比べると、参照のためのサーバが一台増えるわけだから、参照だけを考えると、1マスタnスレーブよりすぐれているんだと思う』と書いているけど、増えないでしょ。1マスタNスレーブでマスタを参照してもかまわないわけだし。
1マスタ1スレーブの場合もデュアルマスタの場合も、参照は2台からできる。

>>243
> レプリケーションって難しいねw

いや、そんなに難しくないよ。5.0までのは、
マスタ: クエリを実行 -> 実行終了 -> 更新系のクエリなら(ちょこっと変えて)バイナリログに書く
スレーブ: マスタからバイナリログを取ってくる -> 実行
ってやってるだけだし。bin/mysqlbinlogで見ると分かるが。

> >どういう場合にどちらを選ぶべきなのでしょうか?
> に対する答えは、>>236さんの答えでは不十分ってこと?

不十分つーか、236のは過程もひどいし結論は意味不明すぎる。
シングルマスタとデュアルマスタの得失を229に書いといたから、自分の環境にあわせて選べばいい。
でも、228の人のレベルからするとシングルマスタの方がいいと思うが...デュアルマスタはフェイルポイント無くなるけど、代償も多いからハマりそう。

249:NAME IS NULL
08/03/03 17:55:10 ABajaOyx
>>227
見たのだけれど、update行のバイナリー項目で変にスペースが入ったり\0が並んでたりで、、、
バイナリーログにも出力文字コードがあったりするのでしょうか?
なぜ syntaxエラーなのか、、、



250:NAME IS NULL
08/03/03 23:27:48
208 名前:Trader@Live![] 投稿日:2008/03/03(月) 23:24:21.29 ID:oVO24yUj
個人でも商売でもバイナリデータを直接操れよ
データベースやエクセルとかいうやつは初心者だよ

-----
と言われたんですが

251:NAME IS NULL
08/03/04 00:01:37
左様か

252:NAME IS NULL
08/03/04 01:37:03 2te2Hach
>1マスタNスレーブでマスタを参照してもかまわないわけだし
この場合、更新クエリはマスタで、参照クエリはスレーブに投げるものだと思ったけど、
勘違いかな。。。



253:229
08/03/04 01:46:40 BE:1237212285-2BP(0)
>>252
>>1マスタNスレーブでマスタを参照してもかまわないわけだし
> この場合、更新クエリはマスタで、参照クエリはスレーブに投げるものだと思ったけど、
> 勘違いかな。。。

そういう風に使うことも多いが、別に決まっている訳じゃない。
更新よりも参照のほうがはるかに多いなら、マスタも参照して全体の負荷下げるほうがいいし。
大きいトランザクションを投げることがあるなら、レプリケーションに遅れが出るけど、
その遅れが許されない場合はマスタを参照すべきだし。

254:NAME IS NULL
08/03/04 06:13:01
>>238
遅レスだが、OSも再インストールすればOK

255:NAME IS NULL
08/03/04 08:09:26
>>238

発想がすごいな。データベース触らないほうがいいかも知れないよ。

256:NAME IS NULL
08/03/04 09:31:06
>>238
まちがえたデータベースを削除すればいいだけではないの?

257:NAME IS NULL
08/03/04 11:09:12
データベース消してさらにアンインストールもしても
ディスク上には残ってるから完全に消したことにはならない
OSインストールしなおしてもデータベースが作られた
場所によってはそれでもまだ消えずに残っているかもしれない
HDD消去ツールを使って完全に消去してから
OSのインストールとMySQLのインストールをすることを薦める

258:NAME IS NULL
08/03/04 13:49:23
ちょっと相談

PHP

259:NAME IS NULL
08/03/04 19:51:00 Wg0XzILf
どこにも書けないからここで叫ばせてくれ!!

みんなー!!! releaseは予約語だぞー!!!
カラム名に使ったらダメだぞーーーー!!!!!
でもバッククォートでくくれば使えるぞーーーー!!!!

URLリンク(dev.mysql.com)
は、あくまで4.X系列のマニュアルだぞーーー!!!

URLリンク(www.rfs.jp)
が参考になるぞーーーー!!!!

260:NAME IS NULL
08/03/05 01:17:03
>>259
何、このきちがい。


261:NAME IS NULL
08/03/05 11:22:43
たぶんreleaseを使ってはまったんでしょ。
どうせならこっちを参考にすればいいのに。
URLリンク(dev.mysql.com)

262:NAME IS NULL
08/03/05 11:46:59 j7//b68F
my-small.cnf
my-medium.cnf
my-large.cnf
my-huge.cnf
それぞれどの程度のマシンスペックを想定してるんでしょうか?
最近は2Gオーバーのマシンも珍しくなくなっているので、
策定時の大きさの感覚とはギャップが出てきてるんじゃないかとも思うのですが・・・

263:NAME IS NULL
08/03/05 12:04:09 PwmTWvdf
>>261
ごえぇぇぇぇぇっ! 5.1版って和訳されてたのぉぉぉぉ!?!?!?!?!?!?!?
うぎゃぁぁぁぁあっぁあぁ!!!!!
ヘーターこーいぃぃぃたーーーーーーー!!!!!

俺の半日を返せええええぇぇぇぇぇぇぇぇえぇぇぇぇぇっっっ!!!

264:NAME IS NULL
08/03/05 17:41:55
>>262
DB専用サーバか、apacheやアプリケーションサーバと共有するか、DBの負荷程度、etc・・
状況によってどれをテンプレにするか決める。
メモリのギリまで各サービスに最適なメモリを命一杯割り当てる。
決してスワップさせないように。

265:NAME IS NULL
08/03/05 21:46:04 XFVJ2OUC
すいません。複数フィールドに対するユニーク制約の仕方がよくわからないんですが、
以下のようなテーブルがあったとき、

  ID | DAT1 | DAT2 |
  1 |  1   |  2   |
  2 |  1   |  3   |

  3 |  2   |  1   | ← ×
  4 |  3   |  1   | ← ×

すでにあるdat1とdat2の逆は登録させたくないのですが、どのようにすれば良いでしょうか?

266:NAME IS NULL
08/03/05 22:10:05 BE:927909465-2BP(0)
> 策定時の大きさの感覚とはギャップが出てきてるんじゃないかとも思うのですが・・・

my-huge.cnfでもかなり少なめの設定。
KLabの記事でも読むといい。

267:NAME IS NULL
08/03/05 23:13:30
下記のようなデータがあったとき、
nameフィールドの中に入っている項目が多い順にソートして、なお且つ重複を取り除いて抽出するにはどういったSQLを書けばいいでしょうか?
この例では
りんご
みかん
ぶどう
という順に、入っているデータが多い順に一つにまとめて取り出したいです。

ID name
------------
01 りんご
02 みかん
03 ぶどう
04 りんご
05 りんご
06 みかん
07 りんご
08 みかん

宜しくおねがいしますm(_ _)m

268:NAME IS NULL
08/03/06 08:44:36 BE:556745292-2BP(0)
SELECT id, name, count(*) FROM rtfm GROUP BY name ORDER BY count(*) DESC;
マニュアル読めよ。

269:NAME IS NULL
08/03/06 08:57:15
すいません、ありがとうございます

270:NAME IS NULL
08/03/06 09:17:39
マニュアルつーかSQLの基本だわな

271:267
08/03/06 09:20:27
>>268
お礼に、よろしかったらこのリンゴいかがですか。いっぱい取れたもので。

272:NAME IS NULL
08/03/06 09:23:00 UrAOuO7y
いただきます

273:NAME IS NULL
08/03/06 11:58:06
>>265
おそらく設計が間違ってる気がするけど、とりあえずtriggerでも使えば?
(5.0以降だよね?)

274:NAME IS NULL
08/03/06 13:26:01
>>265
正規化して dat1,dat2 を別テーブルにもつ
別テーブルに、IDと datで uniqueインデックスを貼る


275:NAME IS NULL
08/03/06 20:46:55 Ai2/bdLU
すみません、質問させて下さい。
phpでmysqlを使っているのですが、並び替え(order)ではなく任意の行を
最初に取得することはできますか?

|0001|hoge1|
|0002|hoge2|
|0003|hoge3|

orderだと、hoge1,hoge2,hoge3と取得することはできますが、
hoge2(任意),hoge1,hoge3という順番で参照する方法を探しています。

最悪、ループを二回にわけようかとは思いますが。
よろしくお願いします。

276:NAME IS NULL
08/03/06 20:58:36
>>275
order by (id='0002') desc, id
じゃダメ?

277:275
08/03/06 21:14:21
>>276
!!!!!!
そんなのあったんですか。。orz
とてつもなくありがとうございました。

278:NAME IS NULL
08/03/06 21:25:21
>>275
オレならソート用のマスタテーブルを joinして sortカラムとかで order する

279:NAME IS NULL
08/03/07 23:35:42
macアドレスは偽装することが可能だし、
それを認証代わりにすることはリスキーでしょ。
暗号鍵を併用したほうがいい。

280:NAME IS NULL
08/03/08 02:20:04
>>278
激重仕様だなw

281:NAME IS NULL
08/03/08 14:40:21 C6vdEUqT
接続元が動的IPの場合のアクセス制限ってどうやればいいですか?

282:NAME IS NULL
08/03/08 16:46:49
技術的に無理じゃなかろうか。

283:NAME IS NULL
08/03/08 19:21:32
>>281
マスクごと制限しろ

284:NAME IS NULL
08/03/08 23:07:54
INってどういう意味なんですか?
「mysql IN」でぐぐってもINの部分が全く考慮されない検索結果しか出ない(´Д`)

285:NAME IS NULL
08/03/08 23:11:39
>>284
orの代わりに使うもの

select hogehoge in (10,20,30) とあれば
hogehogeが10,20,30のいずれかのものが得られる

286:NAME IS NULL
08/03/09 00:20:40
即レスありがとうございます。
なるほど。

SELECT hogehoge FROM aaaaa WHERE hogehoge = 10 OR hogehoge = 20 OR hogehoge = 30;

と同じ結果が返ってくるのですね。


287:NAME IS NULL
08/03/09 03:21:58
ストアドプロシージャを使って、表を返すスクリプトを作ったのですが、
PHPからCALLすると can't return a result set in the given context と出ます。

コマンドプロンプトでCALLすると、表が表示されるのですが
どうすれば良いでしょうか。 よろしくお願いします。


288:NAME IS NULL
08/03/09 09:36:22
>>287
スレ違い、と言いたいところだが優しくしてあげよう

mysqli関数群を使わないとダメです

289:NAME IS NULL
08/03/11 02:36:31
>>284
ぐぐる前にマニュアル嫁

290:NAME IS NULL
08/03/11 13:54:45
すんません、PHP開発環境のためXAMPPをつかってMySQLインストールしたんですが、
停止できなくなっちゃいました。なんででしょう?
誰かわかったら教えてください。(T_T

エラー:MySQLを停止中にエラーが発生しました。 [0]
とでてます。

前に一度phpMyAdminにアクセスできなくなってパスワードをリセットしようと
したんですが、なんかうまくいかなくて結局再インストールしました。
とりあえず、アクセスできなくなった原因(Cookie)を消去してました。
それが原因かわかりませんがそれ以降再インストールしてもMySQLがXAMPPの
コンパネから終了できなくなりました。

OS:Win
MySQL 5.0.51a
XAMPP 1.6.6a
phpMyAdmin 2.11.4

xampp\mysql\data\.errの書き込み

080311 10:50:33 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
080311 11:59:51 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
080311 12:04:05 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.0.51' socket: '' port: 3306 Source distribution
InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
080311 13:23:56 InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
080311 13:23:56 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
080311 13:23:56 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
080311 13:23:57 InnoDB: Started; log sequence number 0 0
080311 13:23:57 [ERROR] Do you already have another mysqld server running on port: 3306 ?
080311 13:23:57 [ERROR] Aborting

080311 13:23:57 InnoDB: Starting shutdown...
080311 13:23:59 InnoDB: Shutdown completed; log sequence number 0 43655
080311 13:23:59 [Note] MySql: Shutdown complete

よろしくお願いします

291:NAME IS NULL
08/03/11 16:27:44
Do you already have another mysqld server running on port: 3306 ?

292:NAME IS NULL
08/03/11 18:48:39
>>291
You are a fool boy!

293:NAME IS NULL
08/03/12 11:37:07
>>290
起動してないから停止できないんじゃないの?

294:NAME IS NULL
08/03/12 18:43:33
こういう奇妙な現象の多くは
操作ミスか設定ミスか。

295:NAME IS NULL
08/03/12 21:28:16 /qYtQmQP
where句にIFをつかい

where IF(a is null,b=1,c=1)
みたいな感じにしてるんですけど、これを入れ子にするにはどうすればよいのでしょうか?

where IF(a is null,IF(b is null,~,~),c=1)
イメージはみたいな感じです。

MYSQL4.1.20



296:NAME IS NULL
08/03/13 00:36:27
>>295
ん?それでええやん

297:NAME IS NULL
08/03/13 02:18:21
MySQLであるレコードのサイズを求める場合って、手計算しかないでしょうか?
あるレコードのサイズをMySQLの関数とかで求める方法ってありますでしょうか?


298:NAME IS NULL
08/03/13 09:30:48 7ofIu9vE
>>296
あぁ~。
エラーをキチンと読んでませんでした。
どうもありがとう。

299:NAME IS NULL
08/03/13 11:06:32
>>297
本当は何がしたいの?
その手の質問の時に本当にやりたいことは「レコードのサイズを求める」じゃない事が多いんだけど。

300:NAME IS NULL
08/03/13 14:59:48 oJPAtZrA
HPHとの組み合わせですが、
ブラウザ側に

okuri.html
<A/ href="tt.php?a=777">777を送信</A>

サーバーサイドに

tt.php
<?php
print $_get["a"]."を受信";
?>

とファイルを置いても実行すると

を受信

としか表示されません。スーパーグローバル変数の綴り間違いとかじゃないと思ったんですがわかりません。お助けください。

301:NAME IS NULL
08/03/13 15:00:33
↑PHPの間違いです汗

302:NAME IS NULL
08/03/13 15:11:13
ありそうで、今まで誰もしたことのない間違い。
間違えるなら「はみちつ」くらい面白いことやって。

303:NAME IS NULL
08/03/13 15:23:45
>>301
可愛いから許す

304:NAME IS NULL
08/03/13 15:56:45
>>300
webprog池。
といいつつ、 _GET って大文字じゃないといかんのじゃないかと。

305:NAME IS NULL
08/03/13 16:25:21
>>304
解決した。サンクス

306:NAME IS NULL
08/03/14 16:54:43 3GRgoYZ0
質問です。mysql5.0.22
select
a_date,
b_date
from
a,b

aとbとのdateを足して、日付はユニークで
一つにまとめて欲しいのですが、、

どうすれば?

307:NAME IS NULL
08/03/14 16:59:44
意味わからん
a, b はテーブル?
欲しい値は?ユニークとは?
好きな物は最初に食べるタイプ?

308:NAME IS NULL
08/03/14 17:04:51
select distinctrow
a_date + b_date as hoge
from
a,b

309:NAME IS NULL
08/03/14 17:24:30
>>308
306の要求通り合計してあげるなんて親切ですね。

310:NAME IS NULL
08/03/14 17:37:09 3GRgoYZ0
>>308
早速の回答ありがとうございます。
ただ、結果が
hoge
4006
4007
4008

みたいに、日付でないなぞの数字になってしまうのですが・・
どうしてでしょう?

311:NAME IS NULL
08/03/14 19:25:13
>>310
そもそも日付と日付を加算する、という意味が分からない。
日付と日数なら分かるけど。


312:NAME IS NULL
08/03/14 19:55:29
2008/2/29 - 2007/2/28
=2008÷2÷29 - 2007÷2÷28
=34 - 35
= -1
答え -1
~~~~~~~~~

313:NAME IS NULL
08/03/14 20:25:25
日付を足すwww 結果4016年とか?大変ですねwww

314:NAME IS NULL
08/03/15 01:30:43 HlMwlm98
>>311>>312>>313
ごめんなさい。
1日プラス(足す)って表現は、一般常識で考えると
2008/01/01+2008/01/02で4016年02月03日
と確かになります。

表現がちょっと難しかったかもしれません。
ごめんなさい。

頭の悪い人に、聞いて一応問題は解決しました。

315:NAME IS NULL
08/03/15 17:58:02
何故頭の良い人に聞かぬ

316:NAME IS NULL
08/03/15 19:32:24
URLリンク(gugurekasu.com)

317:NAME IS NULL
08/03/15 21:54:30 KoOOhNjo
PHPファイルにアクセスしたら、mysqldumpで
バックアップが取れるようにしたいと思っています。

mysqldump -u root -p パスワード hogehoge < test.sql
(hogehogeはテーブル名)

とすればいいのでしょうか?

318:NAME IS NULL
08/03/15 22:21:31

mysql -u root -p パスワード hogehoge < test.sql

319:NAME IS NULL
08/03/16 13:02:48 x85Y71fw
MySQL 5.0.32を使っているのですが、
Tomcat5.5からJNDIを使ってMySQLに接続しようとすると、
Access denied for user 'user'@'localhost' (using password: YES)
というエラーが出てしまいます。
mysql -uuser -p testdb
として、JNDIの設定と同じパスワードを入れると入れます。

320:290
08/03/17 10:33:56
すんませんした。無事直りました。
ウイルスソフトとファイアーフォールが悪さしてたみたいで、
それを切ってインストールしなおしたらうまくいきました。

>293
おそらくその通りだと思います。
コマンドプロンプトでもうまく作動しなかったので。
上記インストールしなおしたらうまくいきました。

初歩的なところでつまずいてお手数をおかけしました。
これから色々勉強しときます。
うまくいきました。

321:NAME IS NULL
08/03/17 12:39:13 CtPRxUzO
MySQL5を使っています。
AテーブルとBテーブルがあり、それを一緒にしてSELECTしたいのですが
こういった結合はできないのでしょうか?

Aテーブル
id | hoge | aaa | bbb | ccc

Bテーブル
id | hoge | ddd | eee | fff

SELECT `id`,`hoge` FROM Aテーブル;
SELECT `id`,`hoge` FROM Bテーブル;

この2つのSQLを1つにまとめて、AとB両方から id と hoge カラムデータを
持ってきたい。


322:NAME IS NULL
08/03/17 12:53:16
UNION

323:321
08/03/17 13:58:39
>>322
ありがとです。
SELECT `id`,`hoge` FROM Aテーブル
UNION ALL
SELECT `id`,`hoge` FROM Bテーブル;
でできました!

324:NAME IS NULL
08/03/17 20:54:44 I74vD0d5
質問させて下さい。
MySQL5.0.45を使用しております。
正確には、5.0.45-Debian_1ubuntu3.1です。
今回windowsからLinuxに変えてみようと思い色々設定しています。
メモリの挙動についてお伺いしたいのですが、key_buffer=256Mとしているのにtopコマンド確認上では130M程しか使用しておりません。
このほかにも色々メモリを多めに設定しているのですが依然変わらずです。

全体メモリは512MBでスワップは発生していません。
windows(MySQL5)の時は設定したメモリ分だけ予め確保するような挙動でした。
Linuxでは使用限界値として設定され、必要に応じてその範囲まで徐々に使用されていくと言うようなものなのでしょうか?
まだまだ勉強不足で申し訳ありませんが、アドバイス頂ければ幸いです。

325:NAME IS NULL
08/03/18 00:20:32 saWXbSut
今ふと思ったんだけど、複数のSQLをUNIONで一回で実行するのと、
ストアドプロシジャ使うのとどちらが早いんだろ?



326:NAME IS NULL
08/03/18 02:14:37
MySQLのバージョンとConnectorのバージョンって連動しているのでしょうか?
MySQL5.0とConnector/Jの5.1の組み合わせだとSELECTのASで別名とか使えないんですね…
Connector/Jを5.0にすると問題ないのですが、そういうものなのでしょうか。

327:NAME IS NULL
08/03/18 07:43:16
UNIONだとソートが発生するからストアドのほうが早い
UNION ALLだとSQL内で完結するから、
ストアドとSQLのコンテキストスイッチが無い分UNION ALLの方が早い

・・・と思う

328:NAME IS NULL
08/03/18 11:09:13
まずはベンチマークだな。


329:NAME IS NULL
08/03/18 16:38:17
ORDER BYで2つ以上のパラメータからソートすることはできるんでしょうか?

ORDER BY hoge_id DESC, hoge_id2 DESC
hoge_idで降下順でソートして同じ値のものはhoge_id2の降下順になるようにしたいです

330:NAME IS NULL
08/03/18 17:01:41
MySQL Query Browser 1.1.17 を win XP で使っています。
画面上のテキストエリア(?) に SQL を書いて、 Ctrl + Enter を押せば SQL が実行されますが、
CSE や OsqlEdit みたいに、テキストエリア内に複数 SQL を書いて、
「マウスで選択して、選択した文字列を SQL として実行」
はできないのでしょうか?

Ctrl + Enter を押すと、テキストエリア内の文字列をすべて実行しているように見受けられます。
なので、複数 SQL を書いて、実行したい SQL の行頭に # をつけたり消したりすることで切り替えています。

これができたら CSE や OsqlEdit みたいで使い勝手がいいんだけどなぁ・・・





331:NAME IS NULL
08/03/19 01:00:35
WindowsでMySQL 4.0.26から5.0.51aに変更してみたところ
ハンドル数が常時4600程度だったのがMySQLサービス起動直後でも39000程度もあり
少し使っていると42000とか増えていく
65000とかハンドルを消費するとWindows自体が不安定になったことがあるけど大丈夫なのか?

332:NAME IS NULL
08/03/19 01:48:10
Vistaは起動直後で10万越えてるよ

333:NAME IS NULL
08/03/19 02:13:44
MySQLってオラクルみたいに、GUIで操作できる画面ってないでしょうか?


334:NAME IS NULL
08/03/19 02:13:53
うう

335:NAME IS NULL
08/03/19 02:54:14
>>333
何この馬鹿

336:NAME IS NULL
08/03/19 13:17:56 FDALPhtb
windows 2003 serverにmysql4.1を入れているのですが
データベースにアクセスするソフトが2つあって
どちらか片方だけなら普通にアクセスできるのですが
2つとも立ち上げると後から立ち上げたソフトの方がデータベースのオープンに失敗してしまいます。
(mysqlが入っているOSがXPの場合は問題なく2つのソフトでDBアクセスできます)
OSの違いによって何かmysql側で設定が必要なのでしょうか?

337:NAME IS NULL
08/03/19 13:43:23
ORDER BYで2つ以上のパラメータからソートすることはできるんでしょうか?

ORDER BY hoge_id DESC, hoge_id2 DESC
hoge_idで降下順でソートして同じ値のものはhoge_id2の降下順になるようにしたいです

338:NAME IS NULL
08/03/19 15:14:53
まるちすんな

339:NAME IS NULL
08/03/19 15:19:57
>>333
オレはコンソール派だけど、MySQL Query Browser とか SQLyog とか。

340:NAME IS NULL
08/03/19 15:30:08
>>337
できる

341:NAME IS NULL
08/03/19 15:30:46
>>336
エラーは?

342:NAME IS NULL
08/03/19 15:33:31 FDALPhtb
>>341
データベースのオープンエラーとしか・・・

343:337
08/03/19 16:39:34
>>340さん
どんな書き方になるでしょうか?
ヒントでいいのでお願いしますm(_ _ )m

344:NAME IS NULL
08/03/19 17:35:08
>>337
自分で答え書いてるじゃん。
ORDER BY hoge_id DESC, hoge_id2 DESC で正解じゃね?

345:NAME IS NULL
08/03/19 17:36:34
>>342
まさかと思うが、max_connections=1 だったりとか。

346:NAME IS NULL
08/03/19 18:00:48 FDALPhtb
>>345
すみませんそれはどこでみることができますか><

347:324
08/03/19 18:00:52
どなたか>>324
に答えて頂けないでしょうか。
あれからググったりして調べているのですが一向に解決策が見つかりません・・・

348:346
08/03/19 19:39:16
コンソールとかで、show variables like "max_connections";


349:NAME IS NULL
08/03/19 19:42:27
↑の 名前 は間違い 346 じゃないぞ

>>347
show variables like "key_buffer_size";
は設定通り?


350:NAME IS NULL
08/03/19 19:54:31
MySQL 5.0.51aだとMySQLの再起動だけなら問題ないけど
Windowsを再起動するとInnoDBが壊れてるといってMySQLが起動できなくなるなぁ
かといってinnodb_force_recovery=4で起動してcheck tableしても
InnoDBのあるNTFSのディスク自体をchkdskしても全く問題ないので
InnoDB自体が壊れているわけではないようだ
MySQL 5.0.45以前だと全く問題ないんだが・・・
まぁいいか
スキップしよう

351:NAME IS NULL
08/03/19 20:33:46 FDALPhtb
>>348
ありがとうございます。
ところでそれと同様の設定はMySQL Administratorにもありますか?

352:NAME IS NULL
08/03/19 21:10:33
>>351
ある

353:324
08/03/20 02:31:15
>>349
レス有り難う御座います。
key_buffer_size 2147483648 ということで設定通り2Gになっています。
ubuntu7.1 serverを使っているのですが一つのアプリに使えるメモリ上限みたいなのがあるのかな・・・、my.cnfの設定はこうしていますがおかしな所ありますでしょうか?
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = ujis
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
default-character-set = ujis
character-set-server = ujis
collation-server = ujis_japanese_ci
init_connect = "SET NAMES ujis"
skip-character-set-client-handshake
skip-external-locking
skip-name-resolve
#bind-address = 127.0.0.1
key_buffer = 2G
max_allowed_packet = 16M
thread_stack = 1M
thread_cache_size = 1024
#max_connections = 100
table_cache = 1024
#thread_concurrency = 10
sort_buffer_size = 32M
myisam_sort_buffer_size = 32M
wait_timeout = 10
tmp_table_size = 512M
join_buffer_size = 524288
record_buffer = 16M
query_cache_limit = 16M
query_cache_size = 256M
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
skip-bdb
skip-innodb
max_connections=500
max_connect_errors = 102400
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set=ujis
[isamchk]
key_buffer = 16M
!includedir /etc/mysql/conf.d/

354:NAME IS NULL
08/03/20 04:01:00
質問です。
仕事でオラクルを使っているのですが、MySQLも勉強してみたいとおもい、
いろいろ調べております。
やはり、MySQLはオラクルと比べて信頼性が低いということなのですが、
こういうシステムには使ってはいけないとかありますでしょうか?


355:NAME IS NULL
08/03/20 08:18:15
「MySQLはオラクルと比べて信頼性が低い」と考えている人間が携わるシステム。

356:NAME IS NULL
08/03/20 09:22:09
「オラクルはとMySQL比べて信頼性が高い」と考えている人間が携わるシステム。

357:NAME IS NULL
08/03/20 12:05:12 OG+4q6QH
UPDATEするテーブルを複数指定できるのでしょうか?

UPDATE member,item SET member.name='aaa',item.date='2008-03-200'
WHERE member.id='1'

みたいなSQLを書いているのですが、実行されません。

358:NAME IS NULL
08/03/20 12:29:18
>>357
それはMySQLでは出来ない。あきらめよう。

359:NAME IS NULL
08/03/20 14:00:42
>>353
OSのarchはi386?
i386だと、ユーザー空間のメモリは2Gが上限で、MySQLマニュアルのどっかにあったと思うけど、
key_buffer_size以外に、各種クライアントが使用する変数郡をすべて足し合わせた合計が
2Gを越えないように設定しないといけないハズ。

i386でも、PAE-kernel使うとか、自前でコンパイルオプションやスイッチ変更したら2G以上使えるらしいけど、
そこらへんは詳しくない。

つうか、そもそも物理メモリ512Mしかないのに、設定で2Gのメモリを使うようにしてるところが
大問題なんじゃないのかね??
(それが、>>324の現象と関係あるかどうかは知らんが・・)

360:324
08/03/20 14:22:51
>>359
すみません、ここ数日色々試してとっかえひっかえしていたため、情報がごっちゃになってしまいまました。
>>324 の時はメモリ512Mだったのですが違うマシンでメモリ4Gにして試してみたのが>>353です。

OSはubuntu7.1 server、x86、32bit版です。
OS上では4Gを認識しております。
あれから512M、1G、2G、4Gを各上限とする設定を試してみたのですが全て同じメモリ使用量となってしまいます。

LinuxのMySQLも通常は起動時にkey_buffer_sizeで指定したメモリ分だけドカンと使用されるのでしょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch