私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part12
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
すみません、先日質問させてもらった者です。WHERE節で
WHERE column_name LIKE '%DVDプレーヤー%' OR ('%ビデオ%' AND '%デッキ%')
のように式を書いて、エラーもなく動作したのですが、
その後、この記法についてマニュアルで見つけることができません・・・
ここにそれらしき記法を見つけたんですが(WHERE節の最適化の例のひとつとして)
http://dev.mysql.com/doc/refman/5.1/ja/where-optimizations.html
また、手探りで式を変えながら試してみると、
上記の例の場合も、エラーは出ないものの、最初のDVDプレーヤーしか対象になっていないようなんです。
該当のマニュアルページを教えていただけるとありがたいのですが・・
WHERE column_name LIKE '%DVDプレーヤー%' OR ('%ビデオ%' AND '%デッキ%')
のように式を書いて、エラーもなく動作したのですが、
その後、この記法についてマニュアルで見つけることができません・・・
ここにそれらしき記法を見つけたんですが(WHERE節の最適化の例のひとつとして)
http://dev.mysql.com/doc/refman/5.1/ja/where-optimizations.html
また、手探りで式を変えながら試してみると、
上記の例の場合も、エラーは出ないものの、最初のDVDプレーヤーしか対象になっていないようなんです。
該当のマニュアルページを教えていただけるとありがたいのですが・・
予想はしていたが
これはひどいw
WHERE column_name LIKE '%DVDプレーヤー%' OR ((column_name LIKE '%ビデオ%') AND (column_name LIKE '%デッキ%'))
これはひどいw
WHERE column_name LIKE '%DVDプレーヤー%' OR ((column_name LIKE '%ビデオ%') AND (column_name LIKE '%デッキ%'))
>>501
http://dev.mysql.com/doc/refman/5.1/ja/string-comparison-functions.html
like は演算子にしか見えないけど、なんで関数になってるんだろ
http://dev.mysql.com/doc/refman/5.1/ja/string-comparison-functions.html
like は演算子にしか見えないけど、なんで関数になってるんだろ
>>500 なんでだろう・・・・自分のだとこうなる。
mysql> desc table1;
+--------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| field1 | date | YES | | NULL | |
| field2 | varchar(3) | YES | | NULL | |
| field3 | varchar(11) | NO | PRI | | |
| field4 | varchar(11) | NO | PRI | | |
| field5 | bigint(20) unsigned | YES | | NULL | |
| field6 | char(1) | NO | PRI | | |
+--------+---------------------+------+-----+---------+-------+
6 rows in set (0.02 sec)
mysql> select * from table1 where field3 = '00000000002' and field4 = '0' and field6 = 'N';
+------------+--------+-------------+--------+--------+--------+
| field1 | field2 | field3 | field4 | field5 | field6 |
+------------+--------+-------------+--------+--------+--------+
| 2007-11-27 | aaa | 00000000002 | 0 | 100 | N |
+------------+--------+-------------+--------+--------+--------+
1 row in set (0.00 sec)
mysql> update table1 set field2 = 'bbb' where field3 = '00000000002' and field4 = '0' and field6 = 'N';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
mysql> delete from table1 where field3 = '00000000002' and field4 = '0' and field6 = 'N';
Query OK, 0 rows affected (0.00 sec)
mysql> desc table1;
+--------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| field1 | date | YES | | NULL | |
| field2 | varchar(3) | YES | | NULL | |
| field3 | varchar(11) | NO | PRI | | |
| field4 | varchar(11) | NO | PRI | | |
| field5 | bigint(20) unsigned | YES | | NULL | |
| field6 | char(1) | NO | PRI | | |
+--------+---------------------+------+-----+---------+-------+
6 rows in set (0.02 sec)
mysql> select * from table1 where field3 = '00000000002' and field4 = '0' and field6 = 'N';
+------------+--------+-------------+--------+--------+--------+
| field1 | field2 | field3 | field4 | field5 | field6 |
+------------+--------+-------------+--------+--------+--------+
| 2007-11-27 | aaa | 00000000002 | 0 | 100 | N |
+------------+--------+-------------+--------+--------+--------+
1 row in set (0.00 sec)
mysql> update table1 set field2 = 'bbb' where field3 = '00000000002' and field4 = '0' and field6 = 'N';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
mysql> delete from table1 where field3 = '00000000002' and field4 = '0' and field6 = 'N';
Query OK, 0 rows affected (0.00 sec)
>>502-504
ありがとうございます。
並列のLIKE検索式に対してカッコを使用するのですね。あうっ・・
今度は結果も確認できました。
案内いただいたページも参考にさせていただきますm(_ _)m
ありがとうございます。
並列のLIKE検索式に対してカッコを使用するのですね。あうっ・・
今度は結果も確認できました。
案内いただいたページも参考にさせていただきますm(_ _)m
>>494
libmysqlでも何でも使ってDBにアクセスする「サーバ」を作れ。
それに接続するクライアントとしてお前のプログラムを作ればいい。
ソケット越しの連携は何をどうやってもGPLとは関係が無いからな。
そのサーバは公開義務があるけど、別にただのラッパだから
公開しても痛くも痒くもないだろ
libmysqlでも何でも使ってDBにアクセスする「サーバ」を作れ。
それに接続するクライアントとしてお前のプログラムを作ればいい。
ソケット越しの連携は何をどうやってもGPLとは関係が無いからな。
そのサーバは公開義務があるけど、別にただのラッパだから
公開しても痛くも痒くもないだろ
>>505
mysql> desc tb1;
+-------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| f1 | date | YES | | NULL | |
| f2 | varchar(3) | YES | | NULL | |
| f3 | varchar(11) | NO | PRI | | |
| f4 | varchar(11) | NO | PRI | | |
| f5 | bigint(20) unsigned | YES | | NULL | |
| f6 | char(1) | NO | PRI | | |
+-------+---------------------+------+-----+---------+-------+
6 rows in set (0.55 sec)
mysql> desc tb1;
+-------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| f1 | date | YES | | NULL | |
| f2 | varchar(3) | YES | | NULL | |
| f3 | varchar(11) | NO | PRI | | |
| f4 | varchar(11) | NO | PRI | | |
| f5 | bigint(20) unsigned | YES | | NULL | |
| f6 | char(1) | NO | PRI | | |
+-------+---------------------+------+-----+---------+-------+
6 rows in set (0.55 sec)
パフォーマンスを向上させるために、
複数のINSERT文を一つのマルチプルINSERT文に書き換える予定です。
ただ、SQL文が非常に長くなってしまいますが、
MYSQL5.0で、一つのSQL文の長さの制限ってどれ位でしょうか?
お願いします。
複数のINSERT文を一つのマルチプルINSERT文に書き換える予定です。
ただ、SQL文が非常に長くなってしまいますが、
MYSQL5.0で、一つのSQL文の長さの制限ってどれ位でしょうか?
お願いします。
とりあえずmax_allowed_packetで制限されてるみたいだよ。
max_allowed_packetのデフォルトは1MB。
$ ls -l long.sql
-rw-rw-r-- 1 xxxxx xxxxx 16921095 11月 29 00:04 long.sql
$ head long.sql
insert into ltest values
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
$ mysql test < long.sql
ERROR 1153 (08S01) at line 1: Got a packet bigger than 'max_allowed_packet' bytes
max_allowed_packetのデフォルトは1MB。
$ ls -l long.sql
-rw-rw-r-- 1 xxxxx xxxxx 16921095 11月 29 00:04 long.sql
$ head long.sql
insert into ltest values
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
(default), (default), (default), (default), (default), (default), (default),
$ mysql test < long.sql
ERROR 1153 (08S01) at line 1: Got a packet bigger than 'max_allowed_packet' bytes
1MBギリギリで実験。
$ ls -l long.sql
-rw-rw-r-- 1 taira taira 1048546 11月 29 00:12 long.sql
$ mysql test
Server version: 5.0.46-enterprise MySQL Enterprise Server (Commercial)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show variables like '%allow%';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)
mysql> source long.sql
Query OK, 95320 rows affected (1.53 sec)
Records: 95320 Duplicates: 0 Warnings: 0
大丈夫。
$ ls -l long.sql
-rw-rw-r-- 1 taira taira 1048546 11月 29 00:12 long.sql
$ mysql test
Server version: 5.0.46-enterprise MySQL Enterprise Server (Commercial)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show variables like '%allow%';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)
mysql> source long.sql
Query OK, 95320 rows affected (1.53 sec)
Records: 95320 Duplicates: 0 Warnings: 0
大丈夫。
SELECT * FROM t INNER JOIN a ON t.aid = a.aid INNER JOIN b ON t.bid = b.bid
3つのテーブルを結合しているのですが、USINGを使って書き換え方が分かりません、、
よろしくお願いいたします
3つのテーブルを結合しているのですが、USINGを使って書き換え方が分かりません、、
よろしくお願いいたします
>>515
何がしたいのかもう少しkwsk
何がしたいのかもう少しkwsk
どうもすみません
テーブル2つ(t,a)だったら
SELECT * FROM t INNER JOIN a USING (aid)
のように書けたのですが、3つになったとき
SELECT * FROM t INNER JOIN a USING (aid) INNER JOIN b USING (bid)
はエラーになります
USING句を知ってシンプルに書けるなあと思い使ってみようと思いました
テーブル2つ(t,a)だったら
SELECT * FROM t INNER JOIN a USING (aid)
のように書けたのですが、3つになったとき
SELECT * FROM t INNER JOIN a USING (aid) INNER JOIN b USING (bid)
はエラーになります
USING句を知ってシンプルに書けるなあと思い使ってみようと思いました
select t.* from t, a where t.aid=a.aid;
select t.* from t, a, b where t.aid=a.aid and a.aid=b.aid;
じゃダメなの?
select t.* from t, a, b where t.aid=a.aid and a.aid=b.aid;
じゃダメなの?
テーブルaにbidという列があるとダメみたい。
mysql> desc t1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| col2 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> desc t2;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| col3 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> desc t3;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| col2 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> select t1.col1 from t1 inner join t2 using (col1) inner join t3 using (co
l2);
+------+
| col1 |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
t2にcol2列が無い場合は、こんなかんじでちゃんと動く。
でもONで書くのが自然だと思うぞー
mysql> desc t1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| col2 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> desc t2;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| col3 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> desc t3;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| col1 | int(11) | YES | | NULL | |
| col2 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> select t1.col1 from t1 inner join t2 using (col1) inner join t3 using (co
l2);
+------+
| col1 |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
t2にcol2列が無い場合は、こんなかんじでちゃんと動く。
でもONで書くのが自然だと思うぞー
MySQLで、
INSERT INTO `hoge_t` (`test_c`) VALUES (' ');
みたいなSQL文を実行した場合、
`test_c` に " " (半角スペース1つ) では無く、"" (文字列無し) が入ってしまいます。
これは何故でしょうか?
また、解決策はあるのでしょうか?
教えて下さい。
INSERT INTO `hoge_t` (`test_c`) VALUES (' ');
みたいなSQL文を実行した場合、
`test_c` に " " (半角スペース1つ) では無く、"" (文字列無し) が入ってしまいます。
これは何故でしょうか?
また、解決策はあるのでしょうか?
教えて下さい。
where文を作成する時に、INとORだったら、どちらが速いでしょうか?
WHERE FIELD IN ('a', 'b', 'c')
WHERE FIELD A OR FIELD B OR FIELD C
FIELDには、indexを貼っています。
WHERE FIELD IN ('a', 'b', 'c')
WHERE FIELD A OR FIELD B OR FIELD C
FIELDには、indexを貼っています。
explain取ってみてプランが同じなら同じってことでいいと思う。
こっちで試した限りは同じだった。
こっちで試した限りは同じだった。
mysql> create table ctest (c1 varchar(2));
Query OK, 0 rows affected (0.06 sec)
mysql> insert into ctest values ('abc');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+-----------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------+
| Warning | 1265 | Data truncated for column 'c1' at row 1 |
+---------+------+-----------------------------------------+
1 row in set (0.00 sec)
mysql> set @@sql_mode = 'strict_all_tables';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into ctest values ('def');
ERROR 1406 (22001): Data too long for column 'c1' at row 1
mysql> select * from ctest;
+------+
| c1 |
+------+
| ab |
+------+
1 row in set (0.00 sec)
mysql> update ctest set c1 = 'abc' where c1 = 'ab';
ERROR 1406 (22001): Data too long for column 'c1' at row 1
Query OK, 0 rows affected (0.06 sec)
mysql> insert into ctest values ('abc');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+-----------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------+
| Warning | 1265 | Data truncated for column 'c1' at row 1 |
+---------+------+-----------------------------------------+
1 row in set (0.00 sec)
mysql> set @@sql_mode = 'strict_all_tables';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into ctest values ('def');
ERROR 1406 (22001): Data too long for column 'c1' at row 1
mysql> select * from ctest;
+------+
| c1 |
+------+
| ab |
+------+
1 row in set (0.00 sec)
mysql> update ctest set c1 = 'abc' where c1 = 'ab';
ERROR 1406 (22001): Data too long for column 'c1' at row 1
ここよめ
http://dev.mysql.com/doc/refman/5.0/en/windows-installation.html
Windows 95/98/ME and versions of Windows
older than these are no longer supported.
Windows 95/98/MEおよびそれより古いバージョンの
Windowsはもうサポートされていません。
http://dev.mysql.com/doc/refman/5.0/en/windows-installation.html
Windows 95/98/ME and versions of Windows
older than these are no longer supported.
Windows 95/98/MEおよびそれより古いバージョンの
Windowsはもうサポートされていません。
>>533
非NT系Windowsにはサービスって概念がないから
それ関係の項目が表示されないだけだと思う
インストール開始時のOSチェックで蹴られないなら動く可能性はある
インストール終了したら手動でMySQLを起動/終了する方法を試してみて
http://dev.mysql.com/doc/refman/5.0/en/windows-start-command-line.html
まあ本当に動かないかもしれないので動いたら儲けものぐらいで
非NT系Windowsにはサービスって概念がないから
それ関係の項目が表示されないだけだと思う
インストール開始時のOSチェックで蹴られないなら動く可能性はある
インストール終了したら手動でMySQLを起動/終了する方法を試してみて
http://dev.mysql.com/doc/refman/5.0/en/windows-start-command-line.html
まあ本当に動かないかもしれないので動いたら儲けものぐらいで
あれから調べましたが、コマンドラインが起動してすぐに強制終了するので、
何かをするとか無理ですかね?
やっぱりパスワード設定出来ないと駄目なのかなぁ…
何かをするとか無理ですかね?
やっぱりパスワード設定出来ないと駄目なのかなぁ…
> コマンドラインが起動してすぐに強制終了するので
本当に強制終了?なんらかのプログラム(mysql.exeとか)を起動後
コマンドプロンプトが一瞬だけ表示されてすぐ消えるとかじゃなくて?
文面からしてコマンドライン自体よくわかってないように見えるけど
本当に強制終了?なんらかのプログラム(mysql.exeとか)を起動後
コマンドプロンプトが一瞬だけ表示されてすぐ消えるとかじゃなくて?
文面からしてコマンドライン自体よくわかってないように見えるけど
mysql サーバーを外付けhddなどに入れて macとwindowsで共有することは出来るでしょうか?
2台のネットワークにつながっていないパソコンにhddをつないで
mysqlを持ち運ぼうとおもっています
一つのデータベースを2種類のサーバをつかって共有するという感じです
実行は別々の時間です
windowsだけならば何でもできるけど macなんで良い方法ないですか?
2台のネットワークにつながっていないパソコンにhddをつないで
mysqlを持ち運ぼうとおもっています
一つのデータベースを2種類のサーバをつかって共有するという感じです
実行は別々の時間です
windowsだけならば何でもできるけど macなんで良い方法ないですか?
>>543
DBをFATに作れば可能
DBをFATに作れば可能
すみません、お聞きします
今、スケジューラみたいのものを作っていて、
month=12&day=9 のような形でサーバに送って、それぞれまともにmonthカラムとdayカラムに
突っ込んでいます。
これを、date型に成形して、mysqlの方でもその形で1カラムにまとめたとしたら、
運営上どのような利点があるんでしょうか? 厨質問かも知れないですが、回答お願いします
検索などの速度が向上するとかあるんでしょうか、、
今、スケジューラみたいのものを作っていて、
month=12&day=9 のような形でサーバに送って、それぞれまともにmonthカラムとdayカラムに
突っ込んでいます。
これを、date型に成形して、mysqlの方でもその形で1カラムにまとめたとしたら、
運営上どのような利点があるんでしょうか? 厨質問かも知れないですが、回答お願いします
検索などの速度が向上するとかあるんでしょうか、、
日付型にしとくと、日付の演算が可能になるでしょ
月と日が別カラムだと、月をまたぐ計算が面倒
月と日が別カラムだと、月をまたぐ計算が面倒
ありがとうございます そういう効果があるんですね
日付型の特長について、調べてみます!
日付型の特長について、調べてみます!
MySQLのデータを、一般公開できるくらいのデザインで
簡単に整理して表示するWebスクリプトはありますか?
phpMyAdminなどの管理用のユーティリティソフトは導入していますが、
・検索や優先順位付きのソートだけでよい
・ユーティリティだけにデザインが難しい
という問題があります。
スクリプトをいちから組むのはめんどくさくて…
簡単に整理して表示するWebスクリプトはありますか?
phpMyAdminなどの管理用のユーティリティソフトは導入していますが、
・検索や優先順位付きのソートだけでよい
・ユーティリティだけにデザインが難しい
という問題があります。
スクリプトをいちから組むのはめんどくさくて…
>>549
了解です。スレ汚しすみませんでした。
了解です。スレ汚しすみませんでした。
前へ 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 ○
トップメニューへ / →のくす牧場書庫について