0

少し初心者で、おそらく非常に基本的な質問ですが、私を怒らせています。

私はmysqlテーブルを持っています。レコード ID を持つレコードと、写真の名前を含む他の 6 つのフィールドがあります。

したがって、Record_id、写真 1、写真 2、写真 3、写真 4、写真 5、写真 6

TOTALとして写真が含まれているレコードの数を示す「TOTAL」という列がある最終結果が必要です。したがって、レコード 1 には合計 5 枚の写真があり、レコード 2 には 3 枚の写真があり、レコード 3 にはそのレコードの合計レコードがない可能性があります。

フィールドにアップロードされた写真の名前の一部には、photo244.jpg や pic3993.jpg などの数字が含まれている場合があります。これらの数字を一緒に追加したくないので、フィールドに名前があるかどうかを調べているだけです。これは 1 としてカウントされ、合計に追加されます。そのため、ページの最終結果は、レコード 13 (たとえば) には合計 4 枚の写真などがあります。説明が適切でない場合は申し訳ありません!

SUM または COUNT と関係があるかもしれませんが、組み合わせや正しいキー/構文を取得しようとして何年も費やしてきました! mysql selectステートメントの例を挙げて、誰でも助けてもらえますか-感謝します!

4

3 に答える 3

0

Photo1このようなものは、、などでカウントしますPhoto2

SELECT
  SUM(CASE WHEN photo1 IS NOT NULL THEN 1 END) AS Photo1Count,
  SUM(CASE WHEN photo2 IS NOT NULL THEN 1 END) AS Photo2Count,
  SUM(CASE WHEN photo3 IS NOT NULL THEN 1 END) AS Photo3Count,
  SUM(CASE WHEN photo4 IS NOT NULL THEN 1 END) AS Photo4Count,
  SUM(CASE WHEN photo5 IS NOT NULL THEN 1 END) AS Photo5Count
FROM MyTable

次のようなものは、少なくとも 1 つの写真が含まれる行の数をカウントします。

SELECT SUM (
  CASE WHEN
    photo1 IS NOT NULL OR
    photo2 IS NOT NULL OR
    photo3 IS NOT NULL OR
    photo4 IS NOT NULL OR
    photo5 IS NOT NULL THEN 1 END)
FROM MyTable

これらのクエリは総計用であることに注意してください。行ごとのアクティビティは表示されません。行ごとのアクティビティが必要な場合は、Scorpi0 または Michael Sivolobov からの回答を試してください。

于 2013-04-23T12:09:50.950 に答える