2

質問の仕方がわからないので、何を探しているのかわかりません。これが私がやろうとしていることです。

私のテーブルには郵便番号とカウンター列があります

 id  zipcode count
 11  50022   23
 12  50023   1
 13  50025   8
 14  50042   2
 15  50076   2

郵便番号 X カウンター列の金額 (整数値) を返す select ステートメントが必要です。

したがって、select の戻り値は次のようになります。

50022
50022
50022
50022
50022
50022 (and on 23 times)
50023 (one record here)
50025 (there were eight of these so eight records).

等々。

MySQL でこれを実現できる関数または関数のグループはありますか?

これはより大きなクエリの一部であるため、サーバー側のコードでこれを処理することはできません (そうしないと、ループが作成されるだけです)。

これがすべて理にかなっていることを願っています。事前に感謝します!

更新:私は明確なグループ化を試みているわけではありません...反対のことをしています(ある人が以下にコメントしたように)。

4

3 に答える 3

0

これはあなたが望むものです。私はあなたの質問をよく理解していませんが..

    $q = mysql_query("SELECT count FROM <table> WHERE zipcode='50022'");

    while($data = mysql_fetch_array($q)){
    echo "The {$data['zipcode']} is {$data['count']} times printed.";
    for($i=1;$i<=$data['count'];$i++){
      echo $i." - ".$data['zipcode'];
}
    }

アップデート:

mysql内でこれを行おうとしている場合は、SQLクエリでこれを試してください

SELECT count FROM <table> WHERE zipcode='50022'

<table>テーブル名に変更します。

于 2013-07-26T18:44:59.627 に答える
0

あなたが探しているのは、sql group by 句だと思います。この句を使用すると、特定の修飾子によってデータをグループ化でき、select ステートメントに追加されます。

したがって、私が正しく理解していて、カウント列で郵便番号をグループ化している場合は、次の行に沿って何かを行います。

SELECT zipcode FROM [table_name] GROUP BY count;

これが役立つことを願っています。

于 2013-07-26T18:45:16.450 に答える
0

以下のようにダミーテーブルを作成します

CREATE TABLE `dummy1` (
  `dummyId` int(11) NOT NULL,
  PRIMARY KEY  (`dummyId`)
) 

insert into dummy1 values(1),(2),(3), (4), (5),.......(n);

存在はnかなり大きな数です

その後、以下のクエリを使用して結果を入力します

select zipcode from yourtable, dummy1 where countValue <= dummyId order by zipcode

私はこれがきちんとした解決策ではないことを知っています。しかし、mysql はconnect byオラクルのようにサポートしていないため、これはこの種の状況を克服するための解決策のようです。

同様の質問については、 これを参照してください

于 2013-07-26T18:46:49.823 に答える