トップページphp
147コメント45KB

MySQL4.0を追っかけるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/10/20 15:04ID:Yt8k5lmB
MySQL4.0.0-alpha リリース
http://mysql.com/products/mysql-4.0/index.html
また、ベータ版も2ヶ月以内にリリース予定。

使ってみて気がついた事とか話しあいましょう。
0097nobodyさん2006/11/09(木) 14:41:12ID:JW+Aghlr
普段から使っている方からすれば初歩的な質問だと思いますが、お願いします。
まず、

$con=mysql_connect(〜);
mysql_select_db(〜);
$sql="select * from 〜";
$result=mysql_query($sql, $con);

という感じで、テーブル全ての情報を$resultに格納します。
この後、参考にしている本では

while($row=sql_fetch_array($result)){
〜;
}

として順番に一行ずつ参照しています。
これを少し変えて、参照する行を逆順にするにはどうしたらいいでしょうか?
0098nobodyさん2006/11/10(金) 07:13:46ID:???
>>97
$sql="select * from 〜 DESC";
0099nobodyさん2006/11/13(月) 12:48:28ID:oOz598NF
ものすごい初歩的な質問だと思うのですが・・
show tables;
などをした際に大量にあった場合コンソールのバッファを越えてしまいます。
一つずつ見るにはどうしたらいいのでしょうか?
linuxコマンドのmoreのような事をしたいと思っています。
0100nobodyさん2006/11/22(水) 00:39:53ID:EkJNk5rg
>>98
便乗して質問してもいいですか?
order by 苗字, 名前
苗字順にして、苗字が同じならば名前順 としたい場合、上記でいいと思うのですが、

あるフィールドがNULLではない行を先に苗字順にし、更にNULLの行を苗字順にしたい場合、
1つのクエリで処理することはできないのでしょうか?
現在は2つのクエリで1クエリでNULLではない行の苗字順、 2つめのクエリでNULLの場合の苗字順
後からそのクエリをプログラム側で合わせてます。

尚、あるフィールドがNULLではない場合、それぞれ異なるキーがはいってます。
0101nobodyさん2006/11/22(水) 00:51:39ID:EkJNk5rg
なんか説明が下手なので例データを書きます

|苗字|名前|趣味|
――――――――――
|竹中|三郎|   |
|秋葉|一郎|アニメ |
|山本| 萌 |   |
|鈴木|四郎|野球|

↑このデータベースを1つのクエリで

|苗字|名前|趣味|
――――――――――
|秋葉|一郎|アニメ |
|鈴木|四郎|野球|
|竹中|三郎|   |
|山本| 萌 |   |

趣味がある人の中で苗字順、趣味が無い人の中で苗字順
こう並べ替えたいのです。
0102nobodyさん2006/11/22(水) 07:39:58ID:???
応用力のない人だな
趣味のorderの前に趣味がNULLかどうかのorderいれりゃいいだけだろ
0103nobodyさん2006/11/22(水) 07:53:23ID:???
>>99
MySQL Command Line Clientを使ってると仮定して、、、
tee C:\data\out.txt
とかやると、logファイルを残してくれる。
0104nobodyさん2006/11/22(水) 21:54:47ID:en/LIJ9f
すいません、以下の文章の意味が全く分からないのですが、どなたか解説していただけないでしょうか。
なぜそれで「テーブルロックが回避される」のか、サッパリ理由が書かれてませんよね。
っていうか下記のページ、全体的に日本語がおかしい気がします・・・。

http://dev.mysql.com/doc/refman/4.1/ja/tips.html
>大量に更新された MyISAM テーブルに対して複雑な SELECT クエリを使用しないようにする。これでテーブルロックを回避する。
0105nobodyさん2006/11/23(木) 19:10:32ID:cbnkHJk4
mysqlで対象のフィールドがあればupdateして、なければinsertするみたいなSQLは書けるんでしょうか。
方法があればご教示(ご教授ではない)下さい。
0106nobodyさん2006/11/24(金) 11:04:03ID:???
>>105
自分で事前にSELECTして判別。
01071002006/11/25(土) 19:39:56ID:4UZyL29A
>>102
そうすればいいことはわかってるのですが、
そのやり方がわからないのです・・
0108nobodyさん2006/11/27(月) 10:49:30ID:7YzUTRJS
oracleのrankみたいな関数はmysqlにはない?
0109nobodyさん2006/11/29(水) 03:03:59ID:???
>>105
REPLACEじゃだめなん?
0110nobodyさん2006/12/01(金) 12:13:26ID:???
>>107
select * from user order by isnull(shumi), shumi;
0111nobodyさん2006/12/04(月) 17:07:45ID:???
誰か、日本語の全文検索精度を上げる方法を・・・

無理か('A`)
0112うた2007/01/09(火) 19:08:10ID:LU4PzMfb
テキストファイルを使用したSQL文の読込み

ってどうやるのか探して彷徨っています。
load data infile はデータの読み込みでしょ?
そうじゃなくてupdate文を読み込んで一気に処理したいんですが、
分からない。phpで mysql_query で変数のsql文を読み込むこと
はするけど、外部ファイルから読み込めるのかなぁ

0113nobodyさん2007/01/09(火) 20:48:44ID:E47pJCGV
mysql_query(file_get_contents("ファイル"));
0114うた2007/01/10(水) 12:54:09ID:KwOV/H2D
ありがとうございます
でもなんかうまくいきません。

zanji.phpの中身
<?php
mysql_connect('localhost','root','123');
mysql_select_db('wikidb');
mysql_query(file_get_contents("temp.sql"));
?>

---------------------------------------
temp.sqlの中身
update page set page_title = '阿(あ)' where page_title='0000100';
update page set page_title = '愛(あい)' where page_title='0000200';

って感じで、

php zanji.php

を実行しても何も変化がありません。(DBのpage_titileも書き換えられていないし)

====================
そもそも、
他のマシンに入れたphpmyadminにはSQL実行窓の下側に、sqlファイル読み込みの窓
があるのに、どういう訳か、phpMyAdmin - 2.8.2 をインストールしたこのマシンでは
それが出ない。
バグっすかね。
0115nobodyさん2007/01/10(水) 22:23:34ID:/8+Ver2h
MySQLでリレーション組んでるのですが、下のURLのようなテーブルの場合どうすればいいのでしょうか?
http://www.geocities.jp/phpsqlphp/index.html

同じテーブルから3つ呼び出したいのですがうまく行きません。
select staff.name, area.area from staff inner join area on staff.idou = area.area
のように1つだけならできるのですが、2つ以上になるとできません。
アドバイスをください……
01161152007/01/12(金) 22:34:51ID:???
だれかわからないでしょうか?
0117nobodyさん2007/01/12(金) 23:16:07ID:???
>>115
質問の意味がわからない(;´Д`)
どういう結果がほしいの?
01181152007/01/13(土) 02:44:23ID:???
http://www.geocities.jp/phpsqlphp/index.html
の下のほうに希望する結果書きました。
select staff.name, area.area from staff innner join area on staff.idou = area.num
でstaffテーブルのidouに対応するareaテーブルのareaが結合できるのですが、別フィールドに同じテーブルからさらに引っ張りたい場合のやりかがたわからないのです。
説明がへたくそですみません……
0119nobodyさん2007/01/13(土) 14:27:54ID:???
>>115
SELECT
  staff.num,
  staff.name,
  area_s.area,
  area_k.area,
  area_i.area
FROM
  staff,
  area AS area_s,
  area AS area_k,
  area AS area_i
WHERE
  staff.siten = area_s.num
AND
  staff.kibou = area_k.num
AND
  staff.idousaki = area_i.num
ごめん、こんな冗長なのしか思いつかなかったw
0120うた2007/01/15(月) 16:45:17ID:jQqUIVCH
>>112-114

自己解決しました。私はwindows2000でmysql5を弄っています。
コマンドプロンプトで
C:\Documents and Settings\Administrator>mysql -uroot -phimitu wikidb < c:\mysql5\bin\test.sqle
とかしたら出来ました!
【解説】
mysql はmysqlに命令を与えるコマンドの一つ。ほかにもmysqladminとかある
-uroot は引数-uにユーザー名であるrootを指定
-phimitu は引数-pにパスワードhimituを指定
wikidb は使用するデータベースを指定
この次が問題!
<   ←これがリダイレクト。これ以降の右辺を読み込んで左辺へ渡す
c:\mysql5\bin\test.sqle 左辺にファイル(中身はテキスト)
 

キーワードは「リダイレクト」ググって見て下さい。

ただ、私の場合、命令文を収めたtest.sqlファイルが1万件くらいあって、それが巨大すぎて動かなかったみたいです
細切れにして実行させたら動きました。

ファイルを読み込むっていっても自ずと限界があるようで・・・
01211152007/01/15(月) 21:57:46ID:???
>>119

最後のwhereでなくon みたいですね。
別名をつけるのは思い浮かびませんでした。 SQLは長くなるけど、ループしてなんどもSelectかけるよりはいいのかぁ。
とりあえずこれでやってみます。 ありがとうございました。
0122うた2007/05/12(土) 18:19:17ID:4Q6meIRD
初心者のうたです。

MYSQLの5を使っています
出力結果が文字化けして困っています。

PHPスクリプトをutf-8で保存し、
mysqlのテーブルのフィールドの照合順序をすべてutf8_general_ciにし、
ていますが、select文で検索させて出力させると、文字化けになってしまいます。
数字項目はちゃんと出力されているので、スクリプト自体はおかしくないと思うのですが、
どこか設定にミスがあるのでしょうか?
shift-jisに合わせてみてもダメでした。

因みに、ウィキペディアに使われているmediawikiを私のマシンにも
走らせているのですが、そこではうまく日本語を文字化けさせず表示
されています。(まぁインストールは全自動ですからうまい具合に設
定しているのでしょうが)


どなたか、助言を下さいませんか?
0123nobodyさん2007/05/12(土) 19:01:21ID:???
>>122
select文の前に"SET NAMES utf8"とSQL撃ってみてはどうですか
0124nobodyさん2007/06/02(土) 00:22:41ID:wH3kGVeU
初歩的なのですが
複数の単語の検索は
SELECT *
FROM `friendlist`
WHERE `game` LIKE '%虹%' && '%GOW% '
でいいのでしょうか?
||はちゃんとどちらか含んでいるものがヒットするのですが
アンド検索の上記は何もヒットしません…
0125nobodyさん2007/06/02(土) 00:39:17ID:wH3kGVeU
あ、||も、よくよく見たら前の一個分しか引っ張ってませんでした…な、なんでだろう
0126nobodyさん2007/07/02(月) 00:07:22ID:???
intel macを導入して今までと同じMySql4.0.X環境どう作るのかとうろついててたどり着きました。

webアプリ仕事で書くようになって4年くらいになるけど、たいていのレンタル鯖はMySql4.0.Xじゃないですか。
それに合わせてローカル環境もMySql4.0.Xにしてたし、今も機能追加とかメンテとかはその環境でやってます。

おそらくレンタル鯖が勝手にMysqlのバージョンを変えたらどこのプログラムもトラブルを起こすことは目に見えてるだろうから、新たに予算組んで作り直すまではそのままでいくことになるだろう。

先日Intel Mac導入して環境構築してがく然としたんだけど、Intel MacネイティブのMySql4.0.Xって無いらしい。

MySql4.0.X系で作ったプログラムと関わり続けていかないとならない皆さんはこのあたりどう対処してますか?
0127nobodyさん2007/10/01(月) 18:34:26ID:Fh+5Omxq
SHOW COLUMNS FROM tableのキャッシュを破棄したいのですがどうすれば良いのでしょうか?
0128nobodyさん2007/10/22(月) 06:05:52ID:qzDl+cH5
php+mysqlで検索システムを作ってるんですが,
例えばコマンドラインから
select * from unko where auther like "%chinko%" and auther like "%manko%";
ってやるとちゃんとand検索できるのに,ブラウザからまったく同じコマンド打っても
一件も引っかからない状態です.
and検索とかやらないで条件を一つだけ設定するとブラウザからでもいけます.
原因のあたりつく人いますか?
0129nobodyさん2007/10/22(月) 19:13:51ID:???
>>128
あー、まあ、なんだ、とりあえず、お前は
SQLインジェクションというものを調べたほうがいいぞ。
0130nobodyさん2008/09/21(日) 00:19:39ID:f7M58QFz
mysql+php で現行のwebサービス使って劣化ショップみたいな物つくってます。
RESTで拾ってきたXMLをそのままmysqlのレコードにぶち込むような処理をつくったら
ぶち込んだテーブルをmysqladminでみると、オーバーヘッドなる物が多発しております。

DBの最適化してオーバーヘッドを消すのですが、何度か処理を動かすとまた
オーバーヘッド部が出来上がるようなのです。
そもそもオーバーヘッド部はどういう処理したときにできるものなのでしょうか?
御教授ください
0131nobodyさん2008/09/26(金) 15:23:11ID:???
>>130
innodb使っておけ
0132MY2008/11/19(水) 22:26:42ID:TyHr//re
MacOS X 10.5 + MySQL5で勉強しています。
TABLEにCSVファイルのデータをインポートしようとしたらエラーが出ました。
下記に打ったコマンドと結果を載せます。
初心者で教えてくんですみません。

mysql> load data infile "/Users/kawase/Desktop/test.csv "
-> into table kawase_test.nm_list
-> fields terminated by ","
-> lines terminated by "\n";
ERROR 13 (HY000): Can't get stat of '/Users/kawase/Desktop/test.csv' (Errcode: 13)
0133nobodyさん2009/04/20(月) 22:24:22ID:cB7TGCpk
mysql終わったなwwwwwwwwwwwwwwwwwwwwwwwwww
0134nobodyさん2009/06/05(金) 00:48:50ID:4w93Am1B
すいませんmysql_connect()でDBに接続しようとしても以下のエラーが出て繋がらなくなってしまいました。
いろいろ調べたのですが対処法がまったくわかりません。
すいませんが、わかる方教えてくださいお願いいたします。

Warning: mysql_connect() [function.mysql-connect]: Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server in C:\xampp\..(以下ファイル名) on line 10
接続失敗です。Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
0135nobodyさん2009/06/06(土) 14:22:06ID:???
辞書でも引けばいいじゃない。
0136nobodyさん2009/06/16(火) 12:52:09ID:???
てst
0137nobodyさん2009/06/30(火) 15:57:35ID:H2c5SWAB
タイムゾーンに対応するためdate型、datetime型をtimestamp型にしようとしています
ただ、工数の観点からdate型をセレクトしたときの挙動をdate型のそれと全く同じに、
'0000-00-00'といった文字列が返るようにしたいです
また、現状データは "SELECT * FROM…" で取ってきてるのですが、保守性の観点からカラム名を指定して "SELECT id, date(timestamp) as timestamp…" のようにカラムを羅列するのは避けたいです
理想としてはカラム名を * で指定しつつ timestamp カラムを date(timestamp) で上書きすることですが、こういったことは可能でしょうか
使用しているのは MySQL 4.1 です
よろしくお願いします
0138nobodyさん2009/07/01(水) 10:11:17ID:???
View
0139nobodyさん2009/10/14(水) 00:36:37ID:???
phpmyadminにアクセスするとデータベースの構成が
●db_01(10)
●db_02
○ _a001(100)
○ _a002(80)
こんな感じになってるんですが
これはdb_02_a001とdb_02_a002がテーブルを共有してるって事?
0140nobodyさん2010/10/19(火) 14:33:38ID:???
PHP 4.3.1
MySQL 4.0.2
PHP MySQL ライブラリのバージョン 3.23.49

この環境で動くphpmyadminのバージョンを教えてくだしあ
ちなみに2.11.11だとテーマ読み込まれなかった・・・
0141 忍法帖【Lv=2,xxxP】 2011/06/06(月) 19:04:51.06ID:???
test
0142 忍法帖【Lv=3,xxxP】 2011/06/08(水) 12:55:03.03ID:???
test
0143 忍法帖【Lv=4,xxxP】 2011/06/08(水) 22:07:21.50ID:???
test
0144 忍法帖【Lv=3,xxxP】 2011/06/09(木) 17:00:15.76ID:???
???
0145 忍法帖【Lv=3,xxxP】 2011/06/09(木) 23:20:21.51ID:???
INTEL
0146 忍法帖【Lv=4,xxxP】 2011/06/11(土) 18:23:37.48ID:???
test
0147nobodyさん2013/01/18(金) 22:41:41.34ID:gBUhEEW4
てすと
■ このスレッドは過去ログ倉庫に格納されています