2016-01-28 3 views
-1

У меня есть структура базы данных приведена нижеCakePHP нумерации страниц со сложным запросом

id | Title | brand | 
---+---------+-------+ 
1 |product1 | Lg | 
2 |pruduct2 | Lg | 
3 |pruduct3 | Lg | 
4 |pruduct4 | Lg | 
5 |pruduct5 | Lg | 
6 |pruduct6 |samsung| 
7 |pruduct7 |samsung| 
8 |pruduct8 |samsung| 
9 |pruduct9 |samsung| 
10 |pruduct10|samsung| 
11 |pruduct11| sony | 
12 |pruduct12| sony | 
13 |pruduct13| sony | 
14 |pruduct14| sony | 
15 |pruduct15| sony | 

Нам нужен запрос, с помощью которого я могу смешивать результаты от брендов
Выхода должен быть как

id | Title | brand | 
---+---------+-------+ 
1 |product1 | Lg | 
6 |pruduct6 |samsung| 
11 |pruduct11| sony | 
2 |pruduct2 | Lg | 
7 |pruduct7 |samsung|  
12 |pruduct12| sony | 
.... and so on 

Я следующее запрос, который может получить тот же результат

select id, title,brand row_number() over (partition by brand_id) as 
row_num from product_test order by row_; 

Это не делает «Т работать с MySql, к сожалению, нужно решение, основанное на CakePHP найти или любой другой apporach

Заранее спасибо

+2

Не ясно, что вы пытаетесь достичь, и вы не указали, какую версию CakePHP вы используете. – drmonkeyninja

+0

Довольно ясно, что нужно сделать, но он хочет, чтобы вы написали код для него. :) Он вам писать код ORM для SQL-запроса, который он предоставил. – burzum

ответ

0

Вы можете эмулировать запрос следующим образом:

SELECT @rownum := 0, @brand := NULL; 

SELECT 
    id 
, title 
, brand 
FROM (
    SELECT 
    id 
    , title 
    , brand 
    , @rownum := IF(@brand <=> brand, @rownum + 1, 1) AS row_num 
    , @brand := brand AS dummy 
    FROM 
    product_test 
    ORDER BY 
    brand 
    , id 
) product_test 
ORDER BY 
    row_num 
, brand 
, id;