mysql在一行中从同一个表中获取不同的值

ca1c2owp  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(248)

如果题目不清楚,请改正,可惜我的英语不太好,我不知道如何用一句话来解释我的问题。
我有一张歌曲表和一位艺术家,这是歌曲表:

|-----------------------------|
| id  | title | artist | date |
|-----------------------------|
| 1   | song1 | 1      | unix |
|-----------------------------|
| 2   | song2 | 1      | unix |
|-----------------------------|
| 3   | song3 | 2      | unix |
|-----------------------------|
| 4   | song4 | 3      | unix |
|-----------------------------|

这是艺术家的table

|----------------------|
| id  | name    | date |
|----------------------|
| 1   | artist1 | unix |
|----------------------|
| 2   | artist2 | unix |
|----------------------|
| 3   | artist3 | unix |
|----------------------|

我想得到一个10首随机歌曲和其他3首歌曲标题的列表。我想做一个测试,用户听一首歌,必须猜测标题,所以我需要4个可能的答案,正确的和3个工作标题。所以资源必须是:

|-------------------------------------------------------------------------|
| id  | title | artist_id | artist_name | date | wrong1 | wrong2 | wrong3 |
|-------------------------------------------------------------------------|
| 1   | song1 | 1         | artist1     | unix | song2  | song3  | song4  |
|-------------------------------------------------------------------------|

我怎么能拿到这个?非常感谢,如果您需要其他信息,请告诉我。

hkmswyz6

hkmswyz61#

我建议你用两个问号。一个人应该返回正确的歌曲。

|--------------------------------------------------|
| id  | title | artist_id | artist_name | date |   |
|--------------------------------------------------|
| 1   | song1 | 1         | artist1     | unix |   |
|--------------------------------------------------|

另一个可以返回三首随机歌曲

SELECT * FROM table_name
ORDER BY RAND()
LIMIT 3;

|--------------------------------------------------|
| id  | title | artist_id | artist_name | date |   |
|--------------------------------------------------|
| 2   | song2 | 2         | artist2     | unix |   |
| 3   | song3 | 3         | artist3     | unix |   |
| 4   | song4 | 4         | artist4     | unix |   |
|--------------------------------------------------|

然后你可以把这四条记录放在你的代码里。

相关问题