【问题标题】:PHP/MySQL: Order artist by ASC, then order songs by artist by ASC?PHP/MySQL:按 ASC 排序艺术家,然后按 ASC 按艺术家排序歌曲?
【发布时间】:2013-01-26 08:04:47
【问题描述】:

我正在开发一个音乐播放器,我想列出所有按艺术家从 A-Z (ASC) 排序的歌曲。信息存储在一个包含艺术家文件歌曲等的表格中。

我尝试使用 while 循环首先按 A-Z 排序艺术家,然后按艺术家 A-Z 排序歌曲,但这不起作用。我从来没有完全理解任何类型的循环,所以我们将不胜感激!

我使用的查询之一是SELECT * FROM musicinfo WHERE user='$user' ORDER BY artist ASC

【问题讨论】:

  • 有错误吗?您的查询有什么问题?
  • 查询看起来不错,有什么问题?
  • 在按艺术家排序后,我想按文件名对 ASC 进行排序,但在 while 循环中以某种方式除外?我不知道该怎么做,虽然查询会是SELECT * FROM musicinfo WHERE artist='$artist' ORDER BY file ASC(我相信)

标签: php mysql sql select


【解决方案1】:

所以你需要多重排序吗?只需将其添加到您的 ORDER BY 子句中即可。

SELECT * 
FROM   musicinfo 
WHERE  user = '$user' 
ORDER  BY artist ASC, file ASC

作为旁注,如果值 (s) 来自外部,则查询很容易受到 SQL Injection 的攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

【讨论】:

  • 那么会不会像 Porcupine Tree 的“Arriving Somewhere But Not Here”,然后是同一位艺术家的“Time Flies”,然后是“Riverside”的“01 New Generation Slave”,然后是“Riverside”的“Index” “史蒂文·威尔逊”?
  • 刚刚通过mysql运行,成功了!哇,简单地添加到我现有的查询中,我就会拥有它。凌晨2点哈哈谢谢!
  • 不,你睡不着。首先,您必须在 PDO 或 MySQLi 中重新实现您的代码... :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
相关资源
最近更新 更多