Есть модель "Канал"
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
Есть модель "Микс"
+---------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | YES | | NULL | |
| channel_id | int(11) | YES | MUL | NULL | |
| on_channel | tinyint(1) | NO | | 0 | |
+---------------------+--------------+------+-----+---------+----------------+
Каждый микс принадлежит какому либо каналу.
Запрос на вывод всех миксов из канала 1, 5 и 15
:
"SELECT `mixes`.* FROM `mixes` WHERE `mixes`.`on_channel` = 1 AND `mixes`.`channel_id` IN (1, 5, 15)"
+------+-------------------------------------+------------+
| id | title | channel_id |
+------+-------------------------------------+------------+
| 879 | It's Disco time! MILO 8 | 5 |
| 882 | ElectroDiscoFunkEklektika | 1 |
| 891 | Pleasure Pizza | 5 |
| 953 | Elite Disco Funk | 15 |
| 958 | Special mix for Cottonmouth Podcast | 5 |
| 967 | Disco on the way | 1 |
| 998 | okoloDISKO #9 for FLAT.FM | 15 |
| 1119 | Some Funk For Your Ass | 5 |
| 1267 | GET PHONKEY WITH YOU | 15 |
| 1272 | Friendly Vibes Mix | 5 |
+------+-------------------------------------+------------+
Вопрос: как сделать так, чтобы сортировка была в порядке channel_id = (1, 5, 15)
итерационно, т.е.
+------+-------------------------------------+------------+
| id | title | channel_id |
+------+-------------------------------------+------------+
| 882 | ElectroDiscoFunkEklektika | 1 |
| 879 | It's Disco time! MILO 8 | 5 |
| 953 | Elite Disco Funk | 15 |
| 967 | Disco on the way | 1 |
| 891 | Pleasure Pizza | 5 |
| 998 | okoloDISKO #9 for FLAT.FM | 15 |
| 958 | Special mix for Cottonmouth Podcast | 1 |
| 1119 | Some Funk For Your Ass | 5 |
| 1267 | GET PHONKEY WITH YOU | 15 |
| 1272 | Friendly Vibes Mix | 1 |
+------+-------------------------------------+------------+
Для MySQL 5.x:
SELECT `channel`, `title`
FROM (
SELECT
@row_number:=CASE
WHEN @channel_id = `channel_id` THEN @row_number + 1
ELSE 1
END AS num,
@channel_id:=`channel_id` as `channel`,
`title`
FROM
`mixes`
WHERE `on_channel` = 1
AND `channel_id` IN (1, 5, 15)
ORDER BY `channel_id`
) `q`
ORDER BY `num`, `channel`
Пример на SQLFiddle
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
я использую Laravel в своем приложении
Возникает ошибка при попытке использовать with в панели phpMyAdmin, как я понимаю phpMyAdmin использует MySQL, а в нем есть with, но вот у меня он никак его...
Ошибка #1146 - Таблица 'testtree' не существует возникает в этом коде
Доброе утро! Возникла такая необходимость: есть две таблицы