【发布时间】:2017-01-12 20:30:40
【问题描述】:
我有一个 SQL 表,其中包含
ID
Title
Group Title
每样东西都有ID,每样东西都有Title,但是只有少数有Group Title。
我想提取一个记录列表,但如果存在Group Title,我希望它推翻Title。
然后我想按结果排序列表;所以,
如果我有三条记录
id title group title
1 Womble
2 Alphabet Zebra
3 Mirror
结果将是
id result
3 Mirror
1 Womble
2 Zebra
如何通过单个查询来实现这一目标?
我怀疑我需要通过选择进行选择,尽管以下似乎可行,但似乎有点“hacky”和作弊
SELECT CONCAT_WS('',group_title,title) AS ordering,id,film_title,series_title
FROM records
ORDER BY ordering
因此,如果 group title 是 NULL,则不会出现任何内容,但如果出现,则 group_title 会被固定在标题上。这个字段永远不会显示,即使它看起来很丑。
【问题讨论】:
-
我不能放心使用上述语句的唯一原因是,如果我有大量数据上传,我不能保证有人不会在 group_title 中放置一个空格,该空格将添加到前面排序结果并影响排序
标签: mysql sql sql-order-by