SQLite如何为所有情况随机选择最小值?
我想从列号中可以存在多个最小值的表中随机选择一行。例如,我有一个包含标题、编号和类别的表格,如下所示: 蒂努卡 A 0 c7 W 0 c7 Y0C7 c0c9 H3C9 此查询将返回一个随机行,其中数字等于0,Ca等于c7: 从表中选择*,其中Ca='c7'和Nu=按随机限值1从表顺序中选择minNu 但当该表包含以下内容时: 蒂努卡 A 3 c7 W 1 c7 Y 5 c7 c0c9 H3C9SQLite如何为所有情况随机选择最小值?,sqlite,Sqlite,我想从列号中可以存在多个最小值的表中随机选择一行。例如,我有一个包含标题、编号和类别的表格,如下所示: 蒂努卡 A 0 c7 W 0 c7 Y0C7 c0c9 H3C9 此查询将返回一个随机行,其中数字等于0,Ca等于c7: 从表中选择*,其中Ca='c7'和Nu=按随机限值1从表顺序中选择minNu 但当该表包含以下内容时: 蒂努卡 A 3 c7 W 1 c7 Y 5 c7 c0c9 H3C9 上面的查询没有返回任何内容。我希望返回w1c7行。我做错了什么?无论Ti是什么,您的子查询看起来总是
上面的查询没有返回任何内容。我希望返回w1c7行。我做错了什么?无论Ti是什么,您的子查询看起来总是匹配Nu=0,并且由于Nu=0和Ca=c7之间没有行,因此它不会返回任何内容。您可能需要以下内容:
SELECT * FROM [Table] x
WHERE Ca = 'c7' And Nu = (SELECT min(Nu) FROM [Table] where x.Ca = Ca)
ORDER BY RANDOM() LIMIT 1;
如果您添加另一行,其中包含Ti=Z、Nu=1、Ca=c7,那么您应该会在返回的行中看到Ti值在W和Z之间翻转。谢谢,这个答案非常正确!