Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL random 4行,列不同_Mysql - Fatal编程技术网

Mysql SQL random 4行,列不同

Mysql SQL random 4行,列不同,mysql,Mysql,我有一个表,它用id、artist、name、src、sample_start和level列表示音乐曲目。 我想随机选择4行,但有不同的艺术家和指定的级别。 我得到的最接近的是这个,但它不是随机的,因为选择了max id 'SELECT * FROM tracks WHERE level = :level AND id IN (SELECT max(id) FROM tracks GROUP BY artist) ORDER BY RAND() LIMIT 4' 你能试试这个吗 SELEC

我有一个表,它用id、artist、name、src、sample_start和level列表示音乐曲目。 我想随机选择4行,但有不同的艺术家和指定的级别。 我得到的最接近的是这个,但它不是随机的,因为选择了max id

'SELECT * FROM tracks WHERE level = :level AND id IN
 (SELECT max(id) FROM tracks GROUP BY artist)
 ORDER BY RAND() LIMIT 4'
你能试试这个吗

SELECT * FROM tracks WHERE LEVEL = :LEVEL AND id IN (SELECT DISTINCT id FROM tracks ORDER BY RAND()) ORDER BY RAND() LIMIT 4

它不选择不同的艺术家,默认情况下id是不同的。只需删除distinct并检查它。另外,为输入和输出提供一些数据样本,这样更好。