我正在使用 PHP 和 mySQL 构建一个网站。 在我的应用程序中,产品类别作为层次结构存储在数据库中。 我遵循“物化路径”(又名“平板模型”)的方法并创建了一个像这样的表:
假设我想为类别 FLASH (category_id=8) 中的项目构建面包屑:
电子产品 -> 可移植电子产品 -> MP3 播放器 -> 闪存
我想知道我是否可以通过此查询以正确的顺序从“FLASH”中获取血统:
Select * from category where category_ID in (1,6,7,8) ORDER BY '1,6,7,8'
什么可以是正确的替代:
ORDER BY '1,6,7,8'
?感谢您的所有建议!
最佳答案
我自己找到了答案!
SELECT *
FROM category
WHERE category_ID
IN ( 1, 6, 7, 8 )
ORDER BY category_ID =1 DESC , category_ID =8 DESC , category_ID =7 DESC , category_ID =6 DESC
上面的 SQL 字符串可以帮助我按任何预定义的顺序对 ID 进行排序:1-6-7-8 或 1-8-7-6 或 6-1-8-7 或任何其他顺序!
关于mySQL : Sort ID by a given string of ID ?(为分层数据构建面包屑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460974/