私は画像、言語、信仰を含むbooks
テーブルを持っています。信仰シリーズ(15結果)を取り出したが、私はあまりにもなく、ランダムに沿ってimage
を取得したいランダムカラムMYSQLと区別する方法は?
SELECT DISTINCT faith, language from books;
と信仰のために個別の値を取得I'am。その結果、ランダムなイメージで信仰を示すことができます。どのように私はそれを行うことができます、お勧めします。
私は画像、言語、信仰を含むbooks
テーブルを持っています。信仰シリーズ(15結果)を取り出したが、私はあまりにもなく、ランダムに沿ってimage
を取得したいランダムカラムMYSQLと区別する方法は?
SELECT DISTINCT faith, language from books;
と信仰のために個別の値を取得I'am。その結果、ランダムなイメージで信仰を示すことができます。どのように私はそれを行うことができます、お勧めします。
クエリ
select distinct faith, language from books;
は、あなたのテーブルは異なる信仰言語の組み合わせを選択します。あなたのテーブルには、同じ信仰のための2つのエントリと言語
Faith Language Image 1 EN img1 1 EN img2 1 FR img3 1 FR img4
が含まれているので、あなたの結果は、一度だけ、それぞれの組み合わせが含まれます
Faith Language 1 EN 1 FR
それはあなたが何を意味するか、まだあなたの質問から明らかではないが、ランダム画像。ここでは、任意に選んだ信仰、言語の組み合わせのためのマッチング画像のいずれかを取得する方法である:
select faith, language, image
from books
group by faith, language;
結果は次のようになります。
Faith Language Image 1 EN img2 1 FR img3
理由は、我々が行を集約ということです。 GROUP BY句では、FaithとLanguageごとに1つの結果行が必要ですが、Imageを選択し、グループごとに表示したいものを指定しません(MINやMAXなどの集計関数で行うこともできます)。 )ので、DBMSが任意に選択したFaith-Languageの組み合わせに一致する画像を1つだけ取得します。
これは既にご希望ですか?みんなに
私はあなたの入力を感謝しますが、これは動作しませんでした。私は異なる '信仰 '欄を持つテーブル'書籍 'に多くの行を持っています。それ自身のBOOK IMAGEであると信じられている多くのBOOKSがあります。今私は本のテーブルからすべての信仰を引き出しています。私は自分自身に対して100冊の本を持つことができる信仰のためにランダムなイメージを設定したいと思います。クエリが実行されるたびに信仰は変わりませんが、毎回ランダムに画像を変更する必要があります たとえば - (faith:religious | image = modesty.jpg) - (faith:religious | image = book_of_religions.jpg) 言語を離れる。 – RanaHaroon
感謝、私はそれが実行された各信仰毎回クエリに対するフィールド2ランダム画像で明確なフィールド1faith
をフェッチしています
SELECT r.faith,
(SELECT r1.image FROM books AS r1 WHERE r.faith=r1.faith ORDER BY rand() LIMIT 1) AS image FROM books AS r GROUP BY r.faith;
から解決策を得ました。
これには2つのクエリまたは1つの特に醜いクエリが含まれます。 – tadman
あなたは信仰と言語のためにその質問とは異なる値を得ます。 – jarlh
2つの 'SELECTS'またはクエリ?サンプルを挙げてください。 – RanaHaroon