[英]MySQL ORDER BY Another table's column names
我有一张桌子,上面的物品看起来像这样:
Product | Color | Size | Size Range ID (from a different, joined table)
-----------------------------------------------------------------------
Shirt | Blue | L | 1
Shirt | Blue | M | 1
Shirt | Blue | S | 1
请注意,尺寸在上表中按字母顺序排序。
我还有一个尺寸范围表,如下所示:
id | size_01 | size_02 | size_03
--------------------------------
1 | S | M | L
如何强制将第一个表上的项目按第二个表中大小的位置排序?
您可以使用join
合并表,然后使用field()
获得列列表中的位置:
select i.*
from items i left outer join
SizeRange sr
on i.SizeRangeId = sr.SizeRangeId
order by field(i.Size, sr.size_01, sr.size_02, sr.size_03)
SELECT
MAX(CASE Size WHEN 'S' THEN Size ELSE '' END) AS 'size_01',
MAX(CASE Size WHEN 'L' THEN Size ELSE '' END) AS 'size_02',
MAX(CASE Size WHEN 'M' THEN Size ELSE '' END) AS 'size_03'
FROM Test
GROUP BY Product
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.