mysql - Mysql在一行中从同一张表中获取不同的值
问题描述
如果不清楚,请更正标题,不幸的是我的英语不完美,我不知道如何用一句话来解释我的问题。
我有一张歌曲表和一位艺术家,这是歌曲表:
|-----------------------------|
| id | title | artist | date |
|-----------------------------|
| 1 | song1 | 1 | unix |
|-----------------------------|
| 2 | song2 | 1 | unix |
|-----------------------------|
| 3 | song3 | 2 | unix |
|-----------------------------|
| 4 | song4 | 3 | unix |
|-----------------------------|
这是艺术家表
|----------------------|
| 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 |
|-------------------------------------------------------------------------|
我怎样才能做到这一点?非常感谢,如果您需要其他信息,请告诉我。
解决方案
我建议您使用两个查询。一个人应该返回正确的歌曲。
|--------------------------------------------------|
| 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 | |
|--------------------------------------------------|
然后你可以把这四个记录放在你的代码中。
推荐阅读
- linux - IGMP:主机拒绝来自 src“0.0.0.0”的 igmp 查询
- php - 无法使用准备好的语句从表中找到特定值
- asp.net - Office 365 仍然可以实现 Office 服务器端自动化?
- asp.net-core - razor 页面 - 全局 onGet onPost - .net 核心
- arrays - VBA 函数中的元素数组操作
- java - Android 资源链接失败。它拒绝建造
- python-3.x - 如果它不属于训练数据集,我该如何设置错误消息?
- vue.js - 运行“npm run build”需要什么?
- node.js - 如何查看 nodejs 中 readline 模块的源代码?
- python - Tensorflow Callback:如何将最佳模型保存在内存而不是磁盘上