0

と を含むいくつかのフィールドを持つデータベースがありidますstore_ididは AI でありstore_id、0 から 7 までの int です。

私の目標は、たとえば 2 行ごとに 1 を選択することなので、行 id=0、id=2、id=4 などを取得します。

SELECT * FROM `table` WHERE MOD(id,2)=0

しかし、私の問題は、store_idx行ごとに1を取得したかったためですWHERE store_id=y

これで私を助けてもらえますか?他の詳細が必要な場合は、お気軽にお問い合わせください。

4

1 に答える 1

1

初めに :

SELECT * FROM table WHERE MOD(id, 2) = 0 AND store_id = y

アイデアのようですが、すべての「store_id = y」に奇数のIDを持たせることはどうですか?

では、サブクエリを実行してフィルターを適用し、結果にカウンターを追加してから、カウンターをフィルター処理するのはどうでしょうか。

set @counter = 0;
SELECT id, store_id FROM
(
    SELECT id, store_id,
    @counter := @counter + 1 as counter
    FROM foo WHERE store_id = 2
) AS sub
WHERE MOD(counter, 2) = 0
于 2013-02-03T18:25:41.760 に答える