私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part15
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
>>597
悩む前にやることがあるような気がする
悩む前にやることがあるような気がする
>>602
ヒラが100人いたら100個連結するわけだね 頑張って
ヒラが100人いたら100個連結するわけだね 頑張って
テーブル(A)からテーブル(B)のデータを取り除きたい
テーブル(A)
日付 | 点数
----------------
2009/10/1 | 89
2009/10/2 | 83
2009/10/2 | 90
2009/10/3 | 93
2009/10/3 | 84
2009/10/7 | 79
2009/10/7 | 66
2009/10/8 | 72
2009/10/9 | 80
テーブル(B)
日付 | 点数
----------------
2009/10/2 | 90
2009/10/3 | 84
2009/10/7 | 66
テーブル(A)があり、そこからテーブル(B)のデータだけを取り除き、
テーブル(C)のようにしたいのです。
どなたかよろしくおねがいします。
結果テーブル(C)
日付 | 点数
----------------
2009/10/1 | 89
2009/10/2 | 83
2009/10/3 | 93
2009/10/7 | 79
2009/10/8 | 72
2009/10/9 | 80
テーブル(A)
日付 | 点数
----------------
2009/10/1 | 89
2009/10/2 | 83
2009/10/2 | 90
2009/10/3 | 93
2009/10/3 | 84
2009/10/7 | 79
2009/10/7 | 66
2009/10/8 | 72
2009/10/9 | 80
テーブル(B)
日付 | 点数
----------------
2009/10/2 | 90
2009/10/3 | 84
2009/10/7 | 66
テーブル(A)があり、そこからテーブル(B)のデータだけを取り除き、
テーブル(C)のようにしたいのです。
どなたかよろしくおねがいします。
結果テーブル(C)
日付 | 点数
----------------
2009/10/1 | 89
2009/10/2 | 83
2009/10/3 | 93
2009/10/7 | 79
2009/10/8 | 72
2009/10/9 | 80
ところで、mysqlって・・sennaとかいうやつ使わないと、全文検索ってまだ出来ないんでしたっけ?
FAQかも知れませんけどご存知の方がいたらご教示下さい。
OS Windows2000Pro SP4
mysql Ver 14.14 Distrib 5.1.30, for Win32 (ia32)
コマンドプロンプトでmysqlを実行すると日本語のカラムの表示が文字化けします。
ServerとClientのキャラクタセットが違っていると文字化けが発生するそうですが
statusの出力結果は
Server characterset: cp932
Db characterset: cp932
Client characterset: cp932
Conn. characterset: cp932
とServerとClientのキャラクタセットは同じになっています。
ちなみに化けるのはコマンドプロンプトでmysqlを実行した時だけで
MySQL Query Browserやコマンドプロンプトでmysqldumpを実行した時は
正しく表示されます。
何が悪いのしょうか?
OS Windows2000Pro SP4
mysql Ver 14.14 Distrib 5.1.30, for Win32 (ia32)
コマンドプロンプトでmysqlを実行すると日本語のカラムの表示が文字化けします。
ServerとClientのキャラクタセットが違っていると文字化けが発生するそうですが
statusの出力結果は
Server characterset: cp932
Db characterset: cp932
Client characterset: cp932
Conn. characterset: cp932
とServerとClientのキャラクタセットは同じになっています。
ちなみに化けるのはコマンドプロンプトでmysqlを実行した時だけで
MySQL Query Browserやコマンドプロンプトでmysqldumpを実行した時は
正しく表示されます。
何が悪いのしょうか?
MySQLのライセンスについて質問です
Linxu,Apache,MySQL,PHPの環境を商用利用する場合、
GPL汚染だのなんだの言われている関係で
Enterpriseライセンス購入して使用するのが無難と言われていても、
法的に罰することが確実に出来る訳ではないという解釈でよいですか。
つまり、Sunが商用利用の場合はライセンス買えといっていても
community版を使用していればSunのルールに多少引っかかってても
現時点では明確でないしライセンス費用を払う義務は
発生しないのかなと考えています。
発生するのが明確になった段階でライセンスを買えば良いのかなと
調べれば調べるほど良く分からなくなるんで誰かアドバイスください。
ちなみに、mixiなどでは購入しているのかなど
事例ベースで教えていただけると助かります・・・。
Linxu,Apache,MySQL,PHPの環境を商用利用する場合、
GPL汚染だのなんだの言われている関係で
Enterpriseライセンス購入して使用するのが無難と言われていても、
法的に罰することが確実に出来る訳ではないという解釈でよいですか。
つまり、Sunが商用利用の場合はライセンス買えといっていても
community版を使用していればSunのルールに多少引っかかってても
現時点では明確でないしライセンス費用を払う義務は
発生しないのかなと考えています。
発生するのが明確になった段階でライセンスを買えば良いのかなと
調べれば調べるほど良く分からなくなるんで誰かアドバイスください。
ちなみに、mixiなどでは購入しているのかなど
事例ベースで教えていただけると助かります・・・。
>>610
show create table テーブル名\G
で、テーブルやカラムの charset を確認してみては?
あとは、select hex(カラム名) from テーブル名 とかで、
本当に自分が思っている文字コードで文字が格納されているか確認するとか。
show create table テーブル名\G
で、テーブルやカラムの charset を確認してみては?
あとは、select hex(カラム名) from テーブル名 とかで、
本当に自分が思っている文字コードで文字が格納されているか確認するとか。
レプリケーションって・・どのくらいパフォーマンス下がるんですか?
もしパフォーマンスに影響が出ないなら、バックアップとして使おうかなと思ったりしているんですが…
もしパフォーマンスに影響が出ないなら、バックアップとして使おうかなと思ったりしているんですが…
最大値や最小値だけでなく、2番や3番の値も取得したい
テーブルA
名前|受けた月|点数
------------------
佐藤|1月|520
佐藤|3月|584
佐藤|7月|598
佐藤|9月|556
佐藤|11月|645
田中|1月|490
田中|3月|480
田中|7月|400
田中|9月|441
田中|11月|477
佐藤と田中のベスト3の点数を↓ように出力させたいんです。
max(点数)で1番の点数を表示させるのはできたんですが、
2番3番が上手くいきません。
名前|1番|2番|3番
----------------
佐藤|645|598|584
田中|490|480|477
バージョンはMySQL5.0です。
テーブルA
名前|受けた月|点数
------------------
佐藤|1月|520
佐藤|3月|584
佐藤|7月|598
佐藤|9月|556
佐藤|11月|645
田中|1月|490
田中|3月|480
田中|7月|400
田中|9月|441
田中|11月|477
佐藤と田中のベスト3の点数を↓ように出力させたいんです。
max(点数)で1番の点数を表示させるのはできたんですが、
2番3番が上手くいきません。
名前|1番|2番|3番
----------------
佐藤|645|598|584
田中|490|480|477
バージョンはMySQL5.0です。
2つのクエリで、php等でループさせれば出来ますね。
クエリ1
select distinct 名前 from table A;
クエリ2
select score from table A where 名前 = クエリ1 order by score DESC limit 3;
1つのクエリでも出来るんでしょうね。私はやり方知らないけど・・・orz
クエリ1
select distinct 名前 from table A;
クエリ2
select score from table A where 名前 = クエリ1 order by score DESC limit 3;
1つのクエリでも出来るんでしょうね。私はやり方知らないけど・・・orz
>>615
なんか・・できたっぽい・・ちょっと乱雑ですが・・・
select distinct tableA.name, max(a.score), b.score, c.score
from tableA left join tableA as a on(tableA.name = a.name) left join tableA as b on(tableA.name = b.name) left join tableA as c on(tableA.name = c.name)
where b.score = (select score from tableA where b.name = tableA.name order by score desc limit 1,1) and c.score = (select score from tableA where c.name = tableA.name order by score desc limit 2,1)
group by tableA.name;
tableAはテーブル名に置き換えて、nameは名前に・・scoreは点数です。
なんか・・できたっぽい・・ちょっと乱雑ですが・・・
select distinct tableA.name, max(a.score), b.score, c.score
from tableA left join tableA as a on(tableA.name = a.name) left join tableA as b on(tableA.name = b.name) left join tableA as c on(tableA.name = c.name)
where b.score = (select score from tableA where b.name = tableA.name order by score desc limit 1,1) and c.score = (select score from tableA where c.name = tableA.name order by score desc limit 2,1)
group by tableA.name;
tableAはテーブル名に置き換えて、nameは名前に・・scoreは点数です。
>>611
GPL汚染って理解していないんじゃないかな。
GPLライセンスでも利用する自由はある。
ただ改造したりリンクするプログラムを
つくったらソースを公開する義務が
発生するだけ。ライセンスをもっと勉強
しようよ。
GPL汚染って理解していないんじゃないかな。
GPLライセンスでも利用する自由はある。
ただ改造したりリンクするプログラムを
つくったらソースを公開する義務が
発生するだけ。ライセンスをもっと勉強
しようよ。
>>617
すごい、できました。
ありがとうございます。
でも、できれば↓のように2回しかテストを受けていない人がいる場合、
NULLもしくは空白になるようにお願いしたいんです。
鈴木|3月|684
鈴木|11月|677
(出力)
名前|1番|2番|3番
----------------
佐藤|645|598|584
田中|490|480|477
鈴木|684|677|NULL
すごい、できました。
ありがとうございます。
でも、できれば↓のように2回しかテストを受けていない人がいる場合、
NULLもしくは空白になるようにお願いしたいんです。
鈴木|3月|684
鈴木|11月|677
(出力)
名前|1番|2番|3番
----------------
佐藤|645|598|584
田中|490|480|477
鈴木|684|677|NULL
体裁をちょっと間違ったので再掲。
select
A.NAME as NAME,
max(A.SCORE) as SCORE_1,
max(B.SCORE) as SCORE_2,
max(C.SCORE) as SCORE_3
from
SCORE as A
left join SCORE as B on A.NAME = B.NAME and A.SCORE > B.SCORE
left join SCORE as C on B.NAME = C.NAME and B.SCORE > C.SCORE
group by A.NAME
select
A.NAME as NAME,
max(A.SCORE) as SCORE_1,
max(B.SCORE) as SCORE_2,
max(C.SCORE) as SCORE_3
from
SCORE as A
left join SCORE as B on A.NAME = B.NAME and A.SCORE > B.SCORE
left join SCORE as C on B.NAME = C.NAME and B.SCORE > C.SCORE
group by A.NAME
>>622
それだとスコアが100点を2回取った人が一回しか表示されなくないですか?
それだとスコアが100点を2回取った人が一回しか表示されなくないですか?
そう言う仕様なら。
select
A.NAME as NAME,
max(A.SCORE) as SCORE_1,
max(B.SCORE) as SCORE_2,
max(C.SCORE) as SCORE_3
from
SCORE as A
left join SCORE as B on
A.NAME = B.NAME and
A.MONTH != B.MONTH and
A.SCORE >= B.SCORE
left join SCORE as C on
B.NAME = C.NAME and
A.MONTH != C.MONTH and
B.MONTH != C.MONTH and
B.SCORE >= C.SCORE
group by
A.NAME
select
A.NAME as NAME,
max(A.SCORE) as SCORE_1,
max(B.SCORE) as SCORE_2,
max(C.SCORE) as SCORE_3
from
SCORE as A
left join SCORE as B on
A.NAME = B.NAME and
A.MONTH != B.MONTH and
A.SCORE >= B.SCORE
left join SCORE as C on
B.NAME = C.NAME and
A.MONTH != C.MONTH and
B.MONTH != C.MONTH and
B.SCORE >= C.SCORE
group by
A.NAME
普通に便利だよ。
ちなみにOSS版でもフォワードは*.sql吐けばいいし
リバースもmysqldump --no-dataの出力を読めるので、
実は商用版いらなかったりするのはここだけの話。
ちなみにOSS版でもフォワードは*.sql吐けばいいし
リバースもmysqldump --no-dataの出力を読めるので、
実は商用版いらなかったりするのはここだけの話。
SELECT * FROM table WHERE C = 1;
のようにC が 1を全部参照できるのはいいのですが
これをあえて、C = ALL みたいにして、
SELECT * FROM table
と同じ振舞いをするようにしたいです。
そういった方法があればよろしくおねがいします。
のようにC が 1を全部参照できるのはいいのですが
これをあえて、C = ALL みたいにして、
SELECT * FROM table
と同じ振舞いをするようにしたいです。
そういった方法があればよろしくおねがいします。
>>629
MySQL Workbenchの商用版、稼働中のMySQLサーバに直接接続しての
リバース/フォーワードエンジニアリングや同期ができるのって
やっぱりsql文を経由して同期するよりも便利・ミスが少ないかなあ
って思いました。それが理由で購入するってのもありですよね?
MySQL Workbenchの商用版、稼働中のMySQLサーバに直接接続しての
リバース/フォーワードエンジニアリングや同期ができるのって
やっぱりsql文を経由して同期するよりも便利・ミスが少ないかなあ
って思いました。それが理由で購入するってのもありですよね?
そりゃもちろんありですよ
ER/Winとかより遥かに安いしね
いまのところ日本法人のサポートが
超優秀なのも加点ポイント
ER/Winとかより遥かに安いしね
いまのところ日本法人のサポートが
超優秀なのも加点ポイント
>>612
レスが遅れましたがアドバイスありがとうございます
テーブルやカラムにはcharsetを指定していませんがデータベースのcharsetをcp932に指定しています。
「select column_name,character_set_name from information_schema.columns」を実行すると
カラムのcharcter_set_nameにはcp932が設定されています
select hex(カラム名) from テーブル名も試してみていますがcp932(シフトJIS)で格納されています。
説明不足でしたが、mysqlの起動時に--t=hogeを指定しsqlの実行結果をテキストファイル
に落とすときちんと出力されているんです。
例えばデータが「あいうえお」だとテキストファイルには「あいうえお」と出力されているのですが
コマンドプロンプトの画面には「、ヲィ」と表示されるのです。
あいうえおはシフトJISだと82a0・82a2・82a4・82a6・82a8ですが
2バイト文字として認識されず2バイト目の文字だけが表示されているようです。
もう少し調べてみますが心当たりがあれば教えていただけると助かります。
レスが遅れましたがアドバイスありがとうございます
テーブルやカラムにはcharsetを指定していませんがデータベースのcharsetをcp932に指定しています。
「select column_name,character_set_name from information_schema.columns」を実行すると
カラムのcharcter_set_nameにはcp932が設定されています
select hex(カラム名) from テーブル名も試してみていますがcp932(シフトJIS)で格納されています。
説明不足でしたが、mysqlの起動時に--t=hogeを指定しsqlの実行結果をテキストファイル
に落とすときちんと出力されているんです。
例えばデータが「あいうえお」だとテキストファイルには「あいうえお」と出力されているのですが
コマンドプロンプトの画面には「、ヲィ」と表示されるのです。
あいうえおはシフトJISだと82a0・82a2・82a4・82a6・82a8ですが
2バイト文字として認識されず2バイト目の文字だけが表示されているようです。
もう少し調べてみますが心当たりがあれば教えていただけると助かります。
641です
mysqlをバージョンダウン(5.1.30→5.0.77)したところ日本語の文字化けが直りました。
5.1.30はOSをXPにしても同じ現象が発生するのでmysqlのバグかもしれません。
アドバイスを頂いた方、ありがとうございました。
mysqlをバージョンダウン(5.1.30→5.0.77)したところ日本語の文字化けが直りました。
5.1.30はOSをXPにしても同じ現象が発生するのでmysqlのバグかもしれません。
アドバイスを頂いた方、ありがとうございました。
phpMyAdmin使ってる人・・・
Googleでログインされた状態のページが検索結果に出てるって知ってた?
これ・・セキュリティー上かなりヤバいので、自分のサイトが載ってないかチェックをお勧め
Googleで下記を入力して検索
intitle:phpMyAdmin "Welcome to phpMyAdmin***" "running on * as root@*""
くれぐれもいたずらはしないように!!!
Googleでログインされた状態のページが検索結果に出てるって知ってた?
これ・・セキュリティー上かなりヤバいので、自分のサイトが載ってないかチェックをお勧め
Googleで下記を入力して検索
intitle:phpMyAdmin "Welcome to phpMyAdmin***" "running on * as root@*""
くれぐれもいたずらはしないように!!!
2つのテーブルからデータをとる場合でどちらかのテーブルに該当するレコードがあったら返してほしいのですが、どちらが空の時返してくれません。
left join だとleftのテーブルにない場合(rightには該当レコードあり)空が帰ってきます。
select name from dog left join cat on where dog.category = cat.category and sex = 1
where dog.category = 1;
どちらかが空でないときカラムをかえしてもらうにはどうかけばいいでしょうか?
left join だとleftのテーブルにない場合(rightには該当レコードあり)空が帰ってきます。
select name from dog left join cat on where dog.category = cat.category and sex = 1
where dog.category = 1;
どちらかが空でないときカラムをかえしてもらうにはどうかけばいいでしょうか?
切ないことにMySQLではFULL OUTER JOINがサポートされていない。
なのでLEFT OUTER JOINで書いたクエリとRIGHT OUTER JOINで
書いたクエリをUNIONするしかない。二度手間。
今も昔も標準SQLのサポートが半端なMySQLを選んだ我が身の不幸
を恨むがよい~
あとJOINをする必要(結果テーブルの中でdogのカラムとcatのカラム
を横に並べる必要)は本当にあるのかな?
単にdogテーブルとcatテーブルからcategoryが指定値の行を検索
するだけで良いのであれば単にUNIONするだけで良いと思う。
なのでLEFT OUTER JOINで書いたクエリとRIGHT OUTER JOINで
書いたクエリをUNIONするしかない。二度手間。
今も昔も標準SQLのサポートが半端なMySQLを選んだ我が身の不幸
を恨むがよい~
あとJOINをする必要(結果テーブルの中でdogのカラムとcatのカラム
を横に並べる必要)は本当にあるのかな?
単にdogテーブルとcatテーブルからcategoryが指定値の行を検索
するだけで良いのであれば単にUNIONするだけで良いと思う。
mysqlツールで何がお勧めですか?
見やすくてできれば日本語でわかりやすいものがいいんですが
見やすくてできれば日本語でわかりやすいものがいいんですが
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : ☆類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part25 (947) - [94%] - 2017/6/18 6:30
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について