さまざまな製品を含むさまざまなカテゴリを含むデータベーステーブルがあり、各カテゴリにはいくつかの優先順位があります。cat-1に5つの製品があり、cat-2に3つの製品があり、cat-3に3つの製品があり、cat-4に2つの製品があるとします。
商品展示時のご注文は以下のとおりです。
カテゴリの優先度が同じである場合(cat-1、cat-2優先度= 1、cat-3優先度= 2、cat-4優先度= NULLと仮定)、製品は次のように表示されます。
c1p1、c2p1、c1p2、c2p2、c1p3、c2p3、c1p4、c1p5、c3p1、c3p2、c3p3、c4p1、c4p2。
カテゴリの優先度が同じである場合(cat-1、cat-2の優先度= 1、cat-3およびcat-4の優先度= 2と仮定)、製品は次のように表示されます。
c1p1、c2p1、c1p2、c2p2、c1p3、c2p3、c1p4、c1p5、c3p1、c4p1、c3p2、c4p2、c3p3。
カテゴリの優先度が異なる場合(cat-1優先度= 2、cat-2優先度= 1、cat-3優先度= 3、cat-4優先度= Nullと仮定)、製品は次のように表示されます。
c2p1、c2p2、c2p3、c1p1、c1p2、c1p3、c1p4、c1p5、c3p1、c3p2、c3p3、c4p1、c4p2。
ここで、c =カテゴリ、p=製品です。
このタイプのソートはMysqlで可能ですか?助けてください。
データベーステーブルの構造とサンプルデータは次のとおりです-
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`priority` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ;
INSERT INTO `categories` (`id`, `name`, `priority`) VALUES
(1, 'c1', 1),
(2, 'c2', 1),
(3, 'c3', 2),
(4, 'c4', NULL);
CREATE TABLE IF NOT EXISTS `products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ;
INSERT INTO `products` (`id`, `category_id`, `name`) VALUES
(1, 1, 'c1p1'),
(2, 1, 'c1p2'),
(3, 1, 'c1p3'),
(4, 1, 'c1p4'),
(5, 1, 'c1p5'),
(6, 2, 'c2p1'),
(7, 2, 'c2p2'),
(8, 2, 'c2p3'),
(9, 3, 'c3p1'),
(10, 3, 'c3p2'),
(11, 3, 'c3p3'),
(12, 4, 'c4p1'),
(13, 4, 'c4p2');