我有一个 SQL (MySQL SQL) 语句,如下所示,从表中获取 10 条记录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
...
到目前为止,一切都很好。但我真正想做的是以DISTINCT
不添加重复项的方式使用关键字,仅基于第一列或第一列和第二列值的唯一性。
例如,目前所有 10 条记录都是唯一的,因为id-n
每条记录的元素总是不同的。所以这是可能的:
...
9 10 id-4
...
9 10 id-8
...
我想做的是让第二个9 10 id-8
元素不在结果集中(或者,或者,9 10 id-4
我不在乎哪些近乎重复的元素被遗漏了)。有没有办法限制DISTINCT
第一列或第一列和第二列?
我知道我可以id-n
从 SQL 语句中省略该值,然后使用将其重新添加的下游脚本对结果进行后处理。但是,出于好奇,我想找到一个包含在 SQL 查询中的解决方案。谢谢!