トップページ⇒php
949コメント332KB

PHP + MySQL

■ このスレッドは過去ログ倉庫に格納されています
0001ECY NGNG
そろそろPHP + MySQLについても語ってほしい脳
0293M02/09/12 17:59ID:???
MySQLは日本語有効にしてる?
DBに格納されている文字と検索文字の文字コードは同じになってる?
029427102/09/15 05:59ID:b9MOuSqZ
>>276-277

ありがとうございました。
アドバイスを参考にして設計しなおしました。
ユーザー情報とは別に「所有アイテム情報テーブル」を作って、

所有者ID
番号(所有者IDごとに連番)
アイテムID
その他…

の列を作ります。
削除/取得時のレコードの処理をすっきりさせるため、
アカウント作成時に、
アイテム最大所持可能数分のレコードを、あらかじめ番号を振って作っておきます。
(まとめて並べておいた方が検索が速くなるんじゃないかという事も期待して)
アイテム取得時には、
アイテムID=nullで一番若い番号のレコードに、情報を書く。
アイテム削除時には、
当該レコードのアイテムIDをnullにする。

検索速度を上げるために、ユーザーIDでインデックスを作る。

というようなものです。
これは妥当でしょうか?
0295nobodyさん02/09/16 05:55ID:???
>>294
>アイテム最大所持可能数分のレコードを、あらかじめ番号を振って作っておきます。
>(まとめて並べておいた方が検索が速くなるんじゃないかという事も期待して)

updateをしたら、見た目には並んでても、データベースの内部的にはバラバラになっていきます。
それに、アカウント取るだけ取って利用しないユーザーも居るはず。
今現在使ってるレコード以外、作る必要なし。

ま、MySQLなら相当なレコード数じゃ無い限り、スピードの事は考えるな。
インデックスも、レコード数が少なければ逆効果という罠。

0296nobodyさん02/09/18 10:52ID:uXrI3/gA
>>295

>インデックスも、レコード数が少なければ逆効果という罠。
まぢですか!( ̄□ ̄;)!!

実際、どれくらいから効率的なのでしょうか?
029729402/09/19 10:36ID:+XOYWduW
>>295

そうなんですかー。
DBの速度とか負荷が未経験なので、
かなり臆病なプログラミングになってる感じなんですが、
そんなに細かい気を遣う必要もないんですね。
0298名無しさん@そうだ選挙にいこう02/09/19 10:57ID:D+O6nPi3
MYSQLにデータを書き込む時ってロックはいるの?
調べてもわかりません。教えてください。
0299nobodyさん02/09/19 22:38ID:jD2DR/iO
>>185
外注してください。
お願いします。
0300nobodyさん02/09/20 00:57ID:???
>>298
>MYSQLにデータを書き込む時ってロックはいるの?
データの整合性を保つため、基本的に必要。
ただし、CGIなどでファイル書き出しと読み込みでかち合うために、
ファイルを壊す、といった事は無い。
0301nobodyさん02/09/20 14:10ID:???
>>300
>CGIなどでファイル書き出しと読み込みでかち合うためにファイルを壊す

こんな事ってあるの?
同時書き込みだけだと思ってたが…
0302nobodyさん02/09/20 23:44ID:???
ファイルを壊す、といった事は無い。
ファイルを壊す、といった事は無い。
0303nobodyさん02/09/21 08:50ID:0HoT4fY5
あるフィールドの値をインクリメントしたい時に、
selectした値をPHPで++してupdateするのではなく、
一文のSQLで書くことはできませんか?
0304nobodyさん02/09/21 16:29ID:???
コネクションプールとか考えているいます?
PHPそのものの機能にはないですよね?
自前でプールクラス用意するしかないのかな
030530002/09/21 16:56ID:???
>>302
>ファイルを壊す、といった事は無い。
そうだね。ファイルの中身が壊れる、だ。

>>303
update test set value=value+1 where id=1
0306nobodyさん02/09/21 20:15ID:bcr2D3RX
あの、PHPとMYSQL
を使った無料検索エンジンスクリプトって
どこかにないでしょうか?
アクセスランキングじゃない奴です。
030730302/09/21 20:28ID:???
>>305
ありがとうございました。
0308nobodyさん02/09/22 01:40ID:???
>>306
お前ラーメンマン?
0309あぼーんNGNG
あぼーん
0310nobodyさん02/09/24 16:49ID:???
>309
           ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` ) < 通報しますた!
          /,  /   \_______
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \       ((( )))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       /  /~\ \     ( ´Д` ) < 通報しますた!
       /  /   >  )     (ぃ9  )  \_______
     / ノ    / /    /    ∧つ
    / /   .  / ./     /    \     (゚д゚) ツーホーシマスタ!
    / ./     ( ヽ、     / /⌒> )     ゚(  )−
   (  _)      \__つ  (_)  \_つ     / >      (・∀・)ツーホー!
0311うんこ02/09/27 12:51ID:s5yVUu+t
>>304

持続的接続のことでしょうか?

http://www.php.net/manual/ja/features.persistent-connections.php
http://www.php.net/manual/ja/function.msql-pconnect.php
031230402/09/28 00:48ID:c3sX3Ag2

>>311
あ、ありがとう。いつも普通にmysql_pconnect()使ってるのに
まったく気づいてなかった・・・。
たしかにこれでいけてるようですね。
今度時間があれば負荷はかってみます。
0313nobodyさん02/09/28 01:40ID:AP2KcdnO
>>308 ピンポーン。当たり。今、勉強中。がんばるよ。
0314名無しさん@そうだ選挙にいこう02/09/28 10:59ID:???
>>313
おう!がんがれ!
0315nobodyさん02/09/30 09:52ID:KKxE6nj4
MySQLでRollBackだけができません...
みなさんどのように対処してます?
0316nobodyさん02/09/30 11:29ID:???
>>315
ネタかい?
ロールバックできないのはMySQLの仕様だぞ?
031731502/09/30 11:34ID:KKxE6nj4
>>316
resありがとうございます
バージョンによっては出来るとか出来ないとか書いてあったんです・・・
それで出来ない人はどういうふうに対応してるのかなって思って
あうぅ。。。トランザクションエラー処理かけて戻したいですぅ・・・(T-T
0318noodyさん02/09/30 11:40ID:???
Maxでできるんじゃねえの?
031931702/09/30 12:07ID:KKxE6nj4
>>318
Maxですか???
032051202/09/30 12:29ID:???
>>317

MySQL-MAXってやつだよ
0321noodyさん02/09/30 12:40ID:???
>>319
http://www.mysql.jp/mysql/TIPS/transaction.html
032231902/09/30 12:50ID:KKxE6nj4
>>320-321
ありがとうございます
さっそく調べて実行してみます
032331902/09/30 13:19ID:KKxE6nj4
うちのMySQLのバージョンが古くてinnodbが含まれていないようなのですが、
http://www.innodb.comからダウンロードして設定すれば使えるようになるかな?
032431902/09/30 13:47ID:KKxE6nj4
うちのバージョン
mysql Ver 11.12 Distrib 3.23.33, for pc-linux-gnu (i686)
これはバージョンアップした方が早かったりするのか・・・
0325nobodyさん02/10/01 02:33ID:???
Mysqlのデータを300になったら古いのから削除するには
php側はどのように書けばいいですか?
0326nobodyさん02/10/01 14:28ID:EJy0Vdqk
>>325
300になったらって、なにが300かわからん
具体的な表があると答えやすいかも
032731902/10/01 15:13ID:dCttkLX0
3.23.33ではrollback処理ができないので、
LOCK TABLEでいくつかの処理が行えるという事がわかったんですが
使用方法がいまいちわかりません・・・。
rollback処理のように開始状態に戻すにはどのようにすればよいのでしょう?

↓普通にOCK TABLEを使用した例です
mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> insert into real_table select * from insert_table;
mysql> TRUNCATE TABLE insert_table;
mysql> UNLOCK TABLES;

よろしくお願いします
0328nobodyさん02/10/01 15:28ID:???
>>326
ありがとうございます。
┌──┬────┬────┐
│ id  │ Mem   │ Mail   │
├──┼────┼────┤
│1   │Xxx    │Xxxx   │
├──┼────┼────┤

│    │      │      │

│299 │Xxx    │Xxxx   │
├──┼────┼────┤
│300 │Xxx    │Xxxx   │
└──┴────┴────┘
         ↓
┌──┬────┬────┐
│ id  │ Mem   │ Mail   │
├──┼────┼────┤
│2   │Xxx    │Xxxx   │
├──┼────┼────┤

│    │      │      │

│299 │Xxx    │Xxxx   │
├──┼────┼────┤
│301 │Xxx    │Xxxx   │
└──┴────┴────┘
データが300というのはこんな感じなんですが、掲示板のように後からデータ入力されて蓄積されるので、
id 1が古いデータになるので、id 301 が追加されると、id 1 が削除される。
この時の300という上限枠をどのようにしたらいいのか
わからない、というかどんな感じにすればいいでしょうか?お願いします。
0329hmk02/10/01 15:50ID:???
>>328 MySQLは良く知らんが、
まず、
"SELECT COUNT(*) FROM the_table" の結果を変数 $cnt に代入せよ。
そして、
"DELETE FROM the_table WHERE id<=${cnt}-300" せよ。
0330nobodyさん02/10/01 16:19ID:???
>>329
あーなるほど、わかりました。
ありがとうございます。
0331nobodyさん02/10/03 13:23ID:m4AMz0v6
>>329
COUNT しちゃだめっしょ うまくいくのは一回目だけ...
0332nobodyさん02/10/03 13:32ID:???
行数拾って300引いて、
正ならその分だけ上から Delete。
0333nobodyさん02/10/07 16:51ID:???
あげ
0334nobodyさん02/10/07 19:16ID:???
何故この板はこんなに人が少ないんだ?
Webプログラミングしてる人間が少ないのか?
0335hmk02/10/07 19:57ID:???
>>331
そうでした。失礼しました。

>>334
何ででしょうね。
本業でやってる人はこんなところに来る必要なないにしても、趣味でいじくってる人は沢山いてもよさそうだが。
他の板とか2ch以外のところで解決してるのかな。
0336nobodyさん02/10/08 14:53ID:???
ページの分割で Mysqlのレコードの20から30を呼び出すにはどうすればいいですか?
0337nobodyさん02/10/08 15:40ID:???
>>336

http://www.mysql.com/doc/en/SELECT.html
0338nobodyさん02/10/08 16:47ID:???
>>337
ありがとう
0339nobodyさん02/10/08 17:02ID:???
>>337
ありがとうって....
あんたあれだけで解るのか?ある意味凄えーーー
0340nobodyさん02/10/09 15:13ID:???
hoge というテーブルが存在するかどうかを調べたいのですが、
どのような方法があるのでしょうか?

現在は SELECT 文を発行して
mysql_error() から判断していますが、
何か他にスマートな方法があるのではないかと思いまして……。
0341nobodyさん02/10/09 15:42ID:k7vFrv7Z
>>340
あんがい、'show databases' がつかえたりして
0342 02/10/09 15:54ID:???
あの〜激しくスレ違いな気がしたのですが質問させていただきます。
PHPで一階層上のファイルを指定するにはどうしたらよいのでしょうか?
HTMLで1階層上を指定するには「../」(ドットドットスラッシュ)ですが、
PHPで同じ事をやろうとしてもうまくいかないみたいです。
すごく初心者な質問で申し訳ないのですがどなたかご教授お願いします。
0343hmk02/10/09 21:12ID:???
>>342
【PHP】質問スレッド Part5
あたりで質問したら?
0344nobodyさん02/10/11 16:35ID:F1zE+kMi

>>14-50
>>298-305

すいません結局頻繁に書き込みされる掲示板などで
MySQL使うな!ってことですか?

MySQLでのトランザクションは遅くてインデックスつくれないカラムとかある
lock tables ではテーブルにロックがかかってしまう
ロックなしではファイルの中身がおかしくなる危険がある

get_lock()の使い方がよくわかりません!
↑これで解決できますか?
0345質問02/10/11 17:04ID:5gjwH8o2
phpでサイトを組むことになりました。
頻繁に更新やバージョンアップが行われそうなかんじです。

そこで質問ですがPHPでのコーディングの見本みたいなのってありますでしょうか?
こうコーディングしろみたいな。
なんか一冊本を読んでみたら、あんまりいいソースではなさそうなので。
へんにテクニックはしったトリッキーなのではなく実際の運用、メンテなんかも考慮して
いいソースがあったら教えてください。
0346nobodyさん02/10/11 17:27ID:vFRmIjHv
>>344
よかったら俺の開発したクラスでも使いたまへ。

/*
ロックするクラス
使い方
//インスタンス生成→初期化→ロック実行
$issue_lockSet = new lockSet;$issue_lockSet->init("lockman",10);$issue_lockSet->lock_suru();
// 更新作業する。
//lockをはずす
$issue_lockSet->lock_kaijo();unset($issue_lockSet);
*/

class lockSet{
var $string;var $timeout;
function init($inputString, $inputTime)
{
$this->string = $inputString;$this->timeout = $inputTime;
}
function lock_suru(){
global $my_con;
if (!$result_lockSet = @mysql_query("select GET_LOCK(\"$this->string\",$this->timeout)",$my_con)){
print "データのロックに失敗しました コード=".mysql_errno()."<br>";exit;}
$get_lock = mysql_fetch_array($result_lockSet);
if ($get_lock[0] != 1){print ("他のスレッドによるロックがかかっています<br>しばらく置いてからもう一度トライしてください。");exit;}
mysql_free_result($result_lockSet);
}
function lock_kaijo(){
global $my_con;
if (!@mysql_query("SELECT release_lock(\"$this->string\")",$my_con)){print "ロックの開放に失敗しました<br>";exit;}
}
}
0347nobodyさん02/10/11 19:53ID:???
>ロックなしではファイルの中身がおかしくなる危険がある
これはMySQLに限ったことじゃないんじゃないのか?
0348名前02/10/11 20:15ID:???
すいません。PHP&mysqlでデータベース使おうと思ってるんですが、
ローカルから接続しようとすると
DBI->connect(atmarkit:localhost) failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) at list1.pl line 5
Can't call method "prepare" on an undefined value at list1.pl line 6.
とやられてしまいます。
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.htmlの記事を読んで、そのままやってみたのですが、うまくいきません。
権限の問題なのでしょうか?
0349nobodyさん02/10/11 20:54ID:???
>>348

何故 ".pl" なの?
035034402/10/11 21:06ID:F1zE+kMi
>>346さんありがとうございます!!
ってちゃんとクラス使ったことのない初心者なんでちゃんとクラスの勉強して
使わせて頂きます!

>>347
そうですね、MySQlだけ、みたいな書き方してましたね
紛らわしいいカキコですいませんでした。
0351nobodyさん02/10/11 21:39ID:???
2つのルーチンで半分ずつデータを作って、それを別のルーチンが全部読み込むという処理なんですが、
A,B,C,D,E,F,G,H,I
と1つのテーブルで処理するのと
A,B,C,D,E
A,F,G,H,I
と2つのテーブルにするのとでは、どちらが処理時間が短く済みますか?
0352nobodyさん02/10/12 01:10ID:???
>>351
ケースバイケースだね。
レコード数にもよるし…

毎度毎度joinするなら、一つにして置いた方が良いけど、
それぞれ別で使うけど、たまにjoinする位なら分けても良いだろうね。

どんな処理が一番使用頻度が高いのか見極めないと…

単純に、全てのデータを読み込むだけってなら、一つの方。
0353nobodyさん02/10/14 20:41ID:OXcSlbm9
>>348
http://www.atmarkit.co.jp/flinux/rensai/mysql04/mysql04b.html
のやつそんまま動かしたね?それPerlの記事…
http://www.atmarkit.co.jp/flinux/rensai/mysql05/mysql05b.html
を見られたし。
0354nobodyさん02/10/14 23:11ID:BzOMwuS2
著しく既出かもしれませんがPHP+MySQLで

$sql="select * from table1 where year>1998 and month>9 ;

where以降の複数の条件をプルダウン形式か何かで選択して、ボタンで実行するのに何か助言が参考URLがあればよろしくお願いします。
0355nobodyさん02/10/15 00:00ID:???
$sql = "SELECT * FROM table1 WHERE year>{$_GET['year']} AND month>{$_GET['month']}";
ってか質問するレベルじゃないだろ
0356nobodyさん02/10/15 00:01ID:???
XSS に気を使えよ。
0357hmk02/10/15 00:09ID:JxJ8+H53
>>354
MySQLはよく知らんが、以下のようにすればよいでしょう。WHEREで指定する条件を以下のように配列に入れてからimplode()する方法ですと、条件を簡単に付け加えられるので皆様におすすめします。PHP4の場合、フォーム変数を$_GET等で取得するのを忘れずに。

<?php
// ここでDB接続する。

$where[] = "year>${year}";
$where[] = "month>${month}";
$sql = "SELECT COUNT(*) FROM table1 WHERE " . implode(" AND ", $where);

// 結果を$cntに代入する処理をする。
?>
<html><body>
<?php if (empty($submit)) { ?>
<form action="">
年を選んで下さい。
<select name="year">
<option value="1999">1999</option><option value="2000">2000</option><option value="2001">2001</option>
</select><br>
月を選んで下さい。
<select name="month">
<option value="1">1</option><option value="2">2</option><option value="3">3</option>
</select><br>
<input type="submit" name="submit" value="送信">
</form>
<?php } else { echo "該当${cnt}件"; } ?>
</body></html>
0358nobodyさん02/10/15 00:52ID:???
ってかみんなユーザーからのリクエスト(POST、GET)の値を生でSQL文とかに入れてんのか??
セキュリティ的にヤバイだろ。

>357
そんなんだと単純なSQL文にしか対応できないからヤダ
0359hmk02/10/15 01:27ID:JxJ8+H53
>>358
>セキュリティ的にヤバイだろ
「生で」の意味がよくわからないが、掲示板程度のものならセキュリティなんて問題にならないと思われ。

>そんなんだと単純なSQL文にしか対応できないからヤダ
そんなことはない。

例えば、以下のようにすれば状況に応じて条件を加えたり外したりできる。
if ($male_only == TRUE) {
$where[] = "SEX='male'";
}

また、357の例だとAND条件しか出てこないが、工夫次第でOR条件も組み合わせられる。
上記方法は、約一年の業務経験から、コーディング速度、メンテナンス性共に高いものだと思われます。

お前ら、WHERE句の柔軟な整形法について何か他の意見はありませんか?
0360nobodyさん02/10/15 01:29ID:???
> 掲示板程度のものならセキュリティなんて問題にならないと思われ。

氏ねよ。
0361nobodyさん02/10/15 01:31ID:???
>>358
> ってかみんなユーザーからのリクエスト(POST、GET)の値を生でSQL文とかに入れてんのか??
> セキュリティ的にヤバイだろ。

356氏が喚起してる。
0362nobodyさん02/10/15 01:34ID:lZ9npSqA
>>357
うまく行きました。ありがとうございました。
OR条件もうまくいきました。感謝です。
0363hmk02/10/15 01:59ID:JxJ8+H53
>>360,361
掲示板程度云々は言い過ぎました。失礼しました。
だけど、SQLの検索条件にするだけなら、「生」で問題はないのでしょう?
0364nobodyさん02/10/15 02:26ID:0Z8FjDM5
>>363
「ちょっとくらいなら」とか言って生で中出しするタイプだな。
0365 02/10/15 02:37ID:???
「生」で insert
0366hmk02/10/15 03:53ID:OUYqpsts
携帯からのカキコです。

よくよく考えてみたのだが、ユーザからのデータは生のままDBに入れておくほうが良いと思う。セキュリティが問題となる場面では、DBから取り出した後にデータを加工すれば良いのですから。

ところで、不要/不正なデータをINSERTしないのは良いとしても、何らかの加工をしたデータを挿入するのはブ男のすることだと思う。
0367nobodyさん02/10/15 05:25ID:???
>>366
全てをすぐに加工するんじゃなく、
一度チェックしてから、必要であれば加工をする…ってのが普通だと思う。
0368hmk02/10/15 13:47ID:???
後で使うときのためにデータを加工することは、元のデータがもつ情報を減らしているようなものである。
処理速度を稼ぐためだとか、プライバシーを守るためだとかいう理由があるのなら、加工されたデータをDBに保存しておいてもよいと思うが。
0369nobodyさん02/10/15 21:32ID:V68LrvQr
$result = mysql_query("delete from data_T where id_no='$id_no_sql' and deleteKey='$deleteKey_sql'");
if (! $result) echo mysql_error();
$affectedRows = mysql_affected_rows($result);

という何の変哲もないコードなんですが、
affected_rowsの行でエラーになります。
delete自体は問題なく行われているのですが…
何故なんでしょう?
0370nobodyさん 02/10/15 21:55ID:???
mysql_affected_rowsは引数に接続IDをとるみたいだから
mysql_connectまたはmysql_pconnectの戻り値を渡すのでは?
0371nobodyさん02/10/15 22:04ID:???
>>370

仰る通りでした。
引数に結果IDと接続IDを取るパターンがあるんですね。
すべて結果IDと思いこんでいたのでかなり悩みました。
ありがとうございました。
0372さばかん02/10/16 13:05ID:IQMQRi3E
せめて特殊文字列のエスケープくらいはしてね
SQL構文にそのままユーザー入力血を入れるのはやめれ
「CGI」 と 「セキュリティー」で検索すれば
いろいろ参考資料が出てくると思うが

ここに出てるのはサンプルなんで
mysql_escape_string とか使ってないだけだよね……
本物ではちゃんとエスケープしてるよね……
0373nobodyさん02/10/16 13:57ID:???
insert into t_hoge( comment ) values( '$a' );

とあるときに、

$a に 「');update t_hoge set comment='';」

とされるとか。
0374nobodyさん02/10/17 17:54ID:UeoXfZ3y
SQLいんじぇくしょん やね
http://www.ipa.go.jp/security/awareness/vendor/programming/a02_01_main.html
0375nobodyさん02/10/17 20:22ID:???
とりあえず addslashes() すれば O.K. なのでしょうか?
0376nobodyさん02/10/17 23:47ID:???
MySQLってバインドないんだよね。
0377nobodyさん 02/10/18 00:50ID:???
なんでおまえらおしえちゃうんだよ。
hmkのテーブルをdropしまくりたかったのに。
0378hmk02/10/19 01:36ID:???
>>377
まだ自前のサイト作ってないからセーフでした。

今更ながら、漏れが仕事やってたときに作ったスクリプトではヤバいかも。
ちゅうことで、>>377君、直しておいてくだちい。
0379nobodyさん02/10/25 21:04ID:8s4WkUQV
redhat7.3にrpmでmysqlインストールして
mysql -u root
set password for root=('設定するパスワード');
flush privileges;
で最後のとこで
ERROR 1045 Access denied for user: '@localhost' (Using password: NO)
ってでてつまってます。
なんか他のユーザー作成とかなにかやろうとするとすぐ同じエラーがでてきちゃう
んですけど、だれかたすけて〜
0380nobodyさん02/10/26 05:55ID:???
>>379
mysqladmin
0381PHP02/10/31 10:48ID:Ey5wVXnt
MySQLで検索システムを作成した場合
データ件数が50万件くらいの規模ならサーバスペックはどれくらい必要なの?
ピークは1時間に2000件くらいかな。

PHP+Apacheのサーバを別に立てて検索させます。
みなさまプリーズ!
0382nobodyさん02/10/31 10:50ID:YIQwg1nb
p�V1Gx2
0383nobodyさん02/10/31 13:02ID:???
>>382
そんなにいらんだろ
0384PHP02/10/31 13:14ID:Kody0HX+
381です。
OSはRedHat7.2を考えています。

>>382
>>383
CPUってそんなもんですか
もっと情報キボンヌ
0385nobodyさん02/10/31 13:21ID:???
MMX Pentium 200MHz
0386nobodyさん02/10/31 14:08ID:???
>>381
>ピークは1時間に2000件

なら、一件辺りは1.8秒だろ。
家のPentium 133MHzでも十分な結果を出せる
相当複雑な問い合わせをしない限り

で、複雑なことすんの?
0387PHP02/10/31 14:43ID:Ey5wVXnt
381です。

>>386
検索一覧と、検索集計です。
テーブルは2テーブル(マスタ、明細)を利用します。
SQLは以下の通りです。
・select * from detail where xxx= 999 order by yyy;
・select * from detail where xxx = 999 order by zzz ;
・select aaa,sum(bbb),sum(ccc) from detail where xxx = 999
   group by ddd
   order by sum(金額) ;
0388nobodyさん02/10/31 22:42ID:???
>>378
何処だろう?
デジタルニューディールのアレかな…?(w
0389nobodyさん02/11/04 00:32ID:laarhpsv
板違いっぽかったので、ここにきました。
MySQLとPostgreSQLで

table1
id
name

table2
id
date_from 期間はじめ
date_to 期間終わり

というテーブルで、

任意の日付がtable2の期間に引っかかる場合のtable1.name
を求めるにはどうしたらよいですか?
table1のidについてtable2で複数の期間が設定されています。

よろしくお願いします。
0390nobodyさん02/11/04 00:50ID:???
>389
SELECT t1.name FROM table1 AS t1,table2 AS t2 WHERE t1.id=t2.id AND (NOW() BETWEEN t2.date_from ND t2.date_to) GROUP BY t1.name
こういうこと?
039138902/11/04 01:34ID:laarhpsv
>>390
サンクスコ。
うまくできました。ありがとうございました。
0392nobodyさん02/11/07 00:21ID:xJ2aD5Sd
jpegファイルを保存するには、どうしたらいいですか。
■ このスレッドは過去ログ倉庫に格納されています