私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part12
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
快速 RDBMS、MySQL の総合スレです。
前スレ[MySQL 総合 Part11]http://pc11.2ch.net/test/read.cgi/db/1178154390/
[関連スレと過去ログ]
http://find.2ch.net/index.php?STR=MySQL
http://makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on
[MySQL Developer Zone]http://dev.mysql.com/
[MySQL 日本語リファレンスマニュアル]http://dev.mysql.com/doc/mysql/ja/
[MySQL Internals Manual]http://dev.mysql.com/doc/internals/en/
[MyNA]http://www.mysql.gr.jp/
[MLja]http://lists.mysql.com/mysql-ja
ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
MyNAでの「心得の条」
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0
・関連ツール及びユーティリティ
・関連書籍
>>2
前スレ[MySQL 総合 Part11]http://pc11.2ch.net/test/read.cgi/db/1178154390/
[関連スレと過去ログ]
http://find.2ch.net/index.php?STR=MySQL
http://makimo.to/cgi-bin/search/search.cgi?D=db&q=MySQL&sf=0&link2ch=on
[MySQL Developer Zone]http://dev.mysql.com/
[MySQL 日本語リファレンスマニュアル]http://dev.mysql.com/doc/mysql/ja/
[MySQL Internals Manual]http://dev.mysql.com/doc/internals/en/
[MyNA]http://www.mysql.gr.jp/
[MLja]http://lists.mysql.com/mysql-ja
ここで質問をする前に、MyNAでのFAQを最初に確認しましょう。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ
MyNAでの「心得の条」
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?%BB%A8%B3%D8%2F%BF%B4%C6%C0
・関連ツール及びユーティリティ
・関連書籍
>>2
【関連ツール及びユーティリティ】
[phpMyAdmin]http://www.phpmyadmin.net/
[phpMyBackupPro]http://www.phpmybackuppro.net/
[MySQLCC]http://www.mysql.com/products/mysqlcc/
[MySQL-Front]http://www.mysqlfront.de/
[mytop]http://jeremy.zawodny.com/mysql/mytop/
[Common SQL Environment]http://www.hi-ho.ne.jp/tsumiki/cse_1.html
MySQL ABでの各種GUIツールはMySQL GUI Toolsとして統合されています
(WorkbenchはGUI Toolsから独立しました。)
http://dev.mysql.com/downloads/gui-tools/5.0.html
・MySQL Administrator
・MySQL Query Browser
・MySQL Migration Toolkit
http://dev.mysql.com/downloads/gui-tools/5.0.html#Workbench
・MySQL Workbench
【関連書籍】
[MySQL Books]
http://dev.mysql.com/books/
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-jp&fqp=keywords%01MySQL
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-us&fqp=keywords%01MySQL
2ch風偉人伝 AA はこちら
http://www.aadayo.com/aa/02_13.html
[phpMyAdmin]http://www.phpmyadmin.net/
[phpMyBackupPro]http://www.phpmybackuppro.net/
[MySQLCC]http://www.mysql.com/products/mysqlcc/
[MySQL-Front]http://www.mysqlfront.de/
[mytop]http://jeremy.zawodny.com/mysql/mytop/
[Common SQL Environment]http://www.hi-ho.ne.jp/tsumiki/cse_1.html
MySQL ABでの各種GUIツールはMySQL GUI Toolsとして統合されています
(WorkbenchはGUI Toolsから独立しました。)
http://dev.mysql.com/downloads/gui-tools/5.0.html
・MySQL Administrator
・MySQL Query Browser
・MySQL Migration Toolkit
http://dev.mysql.com/downloads/gui-tools/5.0.html#Workbench
・MySQL Workbench
【関連書籍】
[MySQL Books]
http://dev.mysql.com/books/
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-jp&fqp=keywords%01MySQL
http://www.amazon.co.jp/exec/obidos/search-handle-url/ix=books-us&fqp=keywords%01MySQL
2ch風偉人伝 AA はこちら
http://www.aadayo.com/aa/02_13.html
更新データを蓄えるための作業用のテーブルを作ってよければ、こんな感じで。
update test1
set col2 = (select test2.col2 from test2 where test1.col1 = test2.col1)
where col1 in (select col1 from test2);
普通はこんなことしないと思うけど…
update test1
set col2 = (select test2.col2 from test2 where test1.col1 = test2.col1)
where col1 in (select col1 from test2);
普通はこんなことしないと思うけど…
UPDATEはB-TREE索引をたどって該当行をつかむ→書き換える、
って流れだから、もし1つのSQLで複数まとめて書く文法があったとしても
内部動作的はこれを1回ずつ繰り返すしかない。
だから効率的にはならないんだよ。
INSERTは表の末尾に一度に書き込めばいいから効率的にできるけどね。
というわけでUPDATE4回投げましょう。
同じUPDATE文でパラメータが違うだけなら
PreparedStatement(JDBCの場合)をつかってSQLの解析コストを減らしましょう。
あとは、4回というのが確定ならそのための専用のストアドプロシージャを
書けばクライアント⇔サーバ間の通信量とかは減らせるね。
(ストアドの中では結局UPDATEを4回やるわけだけど)
って流れだから、もし1つのSQLで複数まとめて書く文法があったとしても
内部動作的はこれを1回ずつ繰り返すしかない。
だから効率的にはならないんだよ。
INSERTは表の末尾に一度に書き込めばいいから効率的にできるけどね。
というわけでUPDATE4回投げましょう。
同じUPDATE文でパラメータが違うだけなら
PreparedStatement(JDBCの場合)をつかってSQLの解析コストを減らしましょう。
あとは、4回というのが確定ならそのための専用のストアドプロシージャを
書けばクライアント⇔サーバ間の通信量とかは減らせるね。
(ストアドの中では結局UPDATEを4回やるわけだけど)
質問させて下さい。
以下のようなテーブルがあります。(他の情報は省略してます。)
tableAにidを4つまで登録することができます。1つのみ登録することもあります。
tableBにidの名称を持っています。
tableA
| id1 | id2 | id3 | id4 |
+-----+-----+-----+-----+
| 001 | 002 | 003 | 005 |
| 002 | | | |
tableB
| id | id_name |
+-----+---------+
| 001 | name1 |
| 002 | name2 |
| 003 | name3 |
| 004 | name4 |
| 005 | name5 |
| 006 | name6 |
この時、↓のような結果を求めるsqlを教えてください。
| id1 | id_name1 | id2 | id_name2 | id3 | id_name3 | id4 | id_name4 |
+-----+----------+-----+----------+-----+----------+-----+----------+
| 001 | name1 | 002 | name2 | 003 | name3 | 005 | name5 |
| 002 | name2 | | | | | | |
よろしくお願いします。
以下のようなテーブルがあります。(他の情報は省略してます。)
tableAにidを4つまで登録することができます。1つのみ登録することもあります。
tableBにidの名称を持っています。
tableA
| id1 | id2 | id3 | id4 |
+-----+-----+-----+-----+
| 001 | 002 | 003 | 005 |
| 002 | | | |
tableB
| id | id_name |
+-----+---------+
| 001 | name1 |
| 002 | name2 |
| 003 | name3 |
| 004 | name4 |
| 005 | name5 |
| 006 | name6 |
この時、↓のような結果を求めるsqlを教えてください。
| id1 | id_name1 | id2 | id_name2 | id3 | id_name3 | id4 | id_name4 |
+-----+----------+-----+----------+-----+----------+-----+----------+
| 001 | name1 | 002 | name2 | 003 | name3 | 005 | name5 |
| 002 | name2 | | | | | | |
よろしくお願いします。
select
A.id1, B1.id_name,
A.id2, B2.id_name,
A.id3, B3.id_name,
A.id4, B4.id_name
from
tableA A,
tableB B1,
tableB B2,
tableB B3,
tableB B4
where
A.id1 = B1.id
and A.id2 = B2.id
and A.id3 = B3.id
and A.id4 = B4.id
;
わりとFAQ?
A.id1, B1.id_name,
A.id2, B2.id_name,
A.id3, B3.id_name,
A.id4, B4.id_name
from
tableA A,
tableB B1,
tableB B2,
tableB B3,
tableB B4
where
A.id1 = B1.id
and A.id2 = B2.id
and A.id3 = B3.id
and A.id4 = B4.id
;
わりとFAQ?
>>17
裏2chじゃないの?
裏2chじゃないの?
>18
鮫島に関する投稿は消されるんだよ素人
鮫島に関する投稿は消されるんだよ素人
掲示板に3分以内に投稿されたレスの数を取得するSQL文を書こうと思っています。
http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html を見たのですが、比較部分をどうすれば良いのかが分かりません。
SELECT COUNT(*) FROM `res_t` WHERE dateTime_c >= SUBTIME(NOW(), '00:03:00');
みたいに書いたら一応エラーにはならないのですが、正しく比較できているか (日時が数値変換されて変に比較されていないか) が不安でしょうがありません。
上のSQL文で正しいかどうか、間違っていればどこを修正すれば良いのかを、ご教示お願いします。
http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html を見たのですが、比較部分をどうすれば良いのかが分かりません。
SELECT COUNT(*) FROM `res_t` WHERE dateTime_c >= SUBTIME(NOW(), '00:03:00');
みたいに書いたら一応エラーにはならないのですが、正しく比較できているか (日時が数値変換されて変に比較されていないか) が不安でしょうがありません。
上のSQL文で正しいかどうか、間違っていればどこを修正すれば良いのかを、ご教示お願いします。
PHPスレで拒否られてるんだよ、>>23は。
PHPスレでDBの作りの質問をし、MySQLスレでWEBセッション管理の質問
も追加してくれば、どちらでも違和感感じる罠。
PHPとMySQL固有の話じゃ無いんだから、もっと一般的な話題のスレで
聞くべき。
で、要求されるセキュリティのレベルが分からない以上、お好きなように
としか言いようが無い。
PHPスレでDBの作りの質問をし、MySQLスレでWEBセッション管理の質問
も追加してくれば、どちらでも違和感感じる罠。
PHPとMySQL固有の話じゃ無いんだから、もっと一般的な話題のスレで
聞くべき。
で、要求されるセキュリティのレベルが分からない以上、お好きなように
としか言いようが無い。
>>26
一度や二度のアタックであきらめるような恋なら最初からするな。
一度や二度のアタックであきらめるような恋なら最初からするな。
規模にもよるけど悩むぐらいなら作れって
あ、ねぇきいてきいていますっごいいっぱいうんこでてるよ
すっごいいっぱい
うんこが
でてるんだよ
俺の体内しか知らなかったうんこたちが
噴流となって体外へと
このタイムスタンプが俺とうんこたちとの生きた証、メモリー
トイレからカキコ
あ、ねぇきいてきいていますっごいいっぱいうんこでてるよ
すっごいいっぱい
うんこが
でてるんだよ
俺の体内しか知らなかったうんこたちが
噴流となって体外へと
このタイムスタンプが俺とうんこたちとの生きた証、メモリー
トイレからカキコ
おぅおぅ!感動っす♪
ありがとうございました。
ありがとうございました。
mysqldumpでDBのフルバックアップを二回取ったんですが、
一回目取った分と二回目に取った分の差分を埋めることってできませんかね?
一回目取った分と二回目に取った分の差分を埋めることってできませんかね?
これでどう
select ... from ... where column is not null group by column
union all
select ... from ... where column is null;
select ... from ... where column is not null group by column
union all
select ... from ... where column is null;
>>24-26
ごめんよ 自分でどうにかしてみるよ
ごめんよ 自分でどうにかしてみるよ
じゃあ
NULLはまとめない⇒NULLにダミー値を差し込む
という方針で
select col2, col3 from test;
+------+------+
| col2 | col3 |
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
| NULL | 1 |
| NULL | 2 |
+------+------+
select max(col2) into @r from test;
select case
when col2 is null then @r := @r + 1
else col2
end dummy1,
count(*)
from test
group by dummy1
;
+--------+----------+
| dummy1 | count(*) |
+--------+----------+
| 1 | 2 |
| 2 | 2 |
| 4 | 1 |
| 6 | 1 |
+--------+----------+
@rが2ずつ増えるのが謎…
NULLはまとめない⇒NULLにダミー値を差し込む
という方針で
select col2, col3 from test;
+------+------+
| col2 | col3 |
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
| NULL | 1 |
| NULL | 2 |
+------+------+
select max(col2) into @r from test;
select case
when col2 is null then @r := @r + 1
else col2
end dummy1,
count(*)
from test
group by dummy1
;
+--------+----------+
| dummy1 | count(*) |
+--------+----------+
| 1 | 2 |
| 2 | 2 |
| 4 | 1 |
| 6 | 1 |
+--------+----------+
@rが2ずつ増えるのが謎…
A,B,Cというカラムがありまして、
A,Bの項目が重複しているレコードを全て取得したいのですが、どのようなSQLを発行すれば宜しいでしょうか?
A,B,C
"男","東京","新宿"
"男","東京","池袋"
"男","東京","渋谷"
"女","神奈川","横浜"
"女","東京","新宿"
↓↓↓↓↓↓↓↓↓↓↓↓(■"男","東京"が重複しているレコードを取得したいです)
"男","東京","新宿"
"男","東京","池袋"
"男","東京","渋谷"
A項目B項目とも内容が不定なので、WHERE文が作れなくて挫折してしましました。
宜しくお願いします。
A,Bの項目が重複しているレコードを全て取得したいのですが、どのようなSQLを発行すれば宜しいでしょうか?
A,B,C
"男","東京","新宿"
"男","東京","池袋"
"男","東京","渋谷"
"女","神奈川","横浜"
"女","東京","新宿"
↓↓↓↓↓↓↓↓↓↓↓↓(■"男","東京"が重複しているレコードを取得したいです)
"男","東京","新宿"
"男","東京","池袋"
"男","東京","渋谷"
A項目B項目とも内容が不定なので、WHERE文が作れなくて挫折してしましました。
宜しくお願いします。
group by dummy1
の中でも @r := @r + 1 が評価されてしまっている
select max(col2) into @r from test;
set @s := 0;
select case
when col2 is null then @r := @r + 1
else col2
end dummy1,
@s := @s + 1,
count(*)
from test
group by dummy1
;
の中でも @r := @r + 1 が評価されてしまっている
select max(col2) into @r from test;
set @s := 0;
select case
when col2 is null then @r := @r + 1
else col2
end dummy1,
@s := @s + 1,
count(*)
from test
group by dummy1
;
>>48
SELECT a, b, c FROM test WHERE a In (SELECT a FROM test GROUP BY a, b HAVING Count(*) > 1) ORDER BY a, b;
SELECT a, b, c FROM test WHERE a In (SELECT a FROM test GROUP BY a, b HAVING Count(*) > 1) ORDER BY a, b;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : ○類似してるかもしれないスレッド
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- MySQL 総合 Part22 (1001) - [94%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [36%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について