2017-06-30 5 views
-1

列の合計が値と等しい場合、テーブルのランダム行を選択する方法はありますか? (MySQL)列の合計がXと等しいランダム行を選択する方法 -

Value : 3 

    Name    Price 
    ------------------------ 
    A     1 
    B     2 
    C     1 
    D     3 
    E     2 

私はすべての可能性(A + B、D、E + C ...)を得ることはできません。私はこれを行うことを試みた

SELECT * FROM table HAVING SUM(column) = 3 ORDER BY RAND(); 

感謝の Thibeault

+0

ようこそスタックオーバーフロー。あなた自身でこの問題を解決しようと試みたすべての試みを含めてください。あなた自身の質問をまだ解決しようとしていないのであれば、ここであなたの質問を先取りして投稿した可能性があります。 – Santi

+0

セルフ・ジョインを使用してすべてのペアを取得し、「ORDER BY RAND()LIMIT 1」を使用してランダムに1つを選択します。 – Barmar

+0

私に例を挙げてもらえますか? @Barmar –

答えて

1

あなたは、行のペアを取得するために自分自身でテーブルを結合する必要があります。

SELECT t1.name as name1, t1.price as price1, t2.name AS name2, t2.price AS price2 
FROM yourTable AS t1 
JOIN yourTable AS t2 ON t1.price + t2.price = 3 
ORDER BY RAND() 
LIMIT 1 
+0

ありがとう、それは働いている! –

+0

最後の質問は、2つ以上の可能性を定義することは可能ですか? (最大可能性、t3、t4などを追加しないでください) –

+0

方法があるかもしれませんが、どうやってそれを行うのか分かりません。 – Barmar

関連する問題