mySQL : Sort ID by a given string of ID ?(为分层数据构建面包屑)

标签 mysql sql sql-order-by hierarchical-data

我正在使用 PHP 和 mySQL 构建一个网站。 在我的应用程序中,产品类​​别作为层次结构存储在数据库中。 我遵循“物化路径”(又名“平板模型”)的方法并创建了一个像这样的表:

enter image description here

假设我想为类别 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/

相关文章:

mysql - 通过Visual C++ DLL通过局域网访问本地MySQL数据库

mysql "in"子句相当慢(似乎挂起)

sql - 将多个右连接重写为左连接

mysql - 1305 - 程序 db.delete_catelog_item 不存在

mysql按字段排序(有一个扭曲)

mysql - 将 UDF 从 MS SQL Server 移植到 MySQL 会引发异常,不正确的双值

PHP - MySQL 准备语句插入一个数组

sql - TSQL - 通过引用其他列来填充条目上方和下方的值

mysql - 为什么我的带有 ORDER BY 的 MySQL SELECT 语句这么慢,即使列上有 INDEX?

SQL 查询 - 在 UNION 中使用 Order By