table から 10 個のレコードを取得するために、次のような SQL (MySQL SQL) ステートメントがありますbar。
SET @foo:=1;
SELECT DISTINCT
@start:=ROUND(RAND()*100),
@start+ROUND(RAND()*100)+1,
CONCAT("id-",@foo:=@foo+1)
FROM
bar
LIMIT 10
次のようなユニークな要素を生成します。
...
14 72 id-2
...
9 10 id-8
...
ここまでは順調ですね。しかし、私が本当にやりたいのは、最初または最初と 2 番目の列の値のみの一意性に基づいて、DISTINCT重複が追加されないようにキーワードを使用することです。
たとえば、現在、レコードid-nごとに要素が常に異なるため、10 レコードすべてが一意です。したがって、これは可能です:
...
9 10 id-4
...
9 10 id-8
...
私がやりたいことは、2 番目の9 10 id-8要素が結果セットに含まれないようにすることです (または、代わりに、9 10 id-4どの重複が除外されてもかまいません)。DISTINCT最初または最初と2番目の列に制約する方法はありますか?
id-nSQL ステートメントから値を除外し、それを追加するダウンストリーム スクリプトで結果を後処理できることはわかっています。しかし、好奇心から、SQL クエリ内に含まれるソリューションを見つけたいと思います。ありがとう!