Size: a a a

2020 December 15

DE

Denis Efremov in MySQL
Ты хочешь чтобы для любого условия выдавало результаты как для определенного?
источник

DE

Denis Efremov in MySQL
Ну присоедини столбец сначала а потом добавляй условие
источник

DE

Denis Efremov in MySQL
SELECT * FROM (
 SELECT draws.*,
   (row_number() OVER (partition BY lottery_id ORDER BY created_at)) AS number
 FROM draws
) WHERE твоё условие
источник

E

Evgenii in MySQL
хм
источник

E

Evgenii in MySQL
а вот это уже инетерсне
источник

IZ

Ilia Zviagin in MySQL
Константин
всем привет!
помогите с запросом плиз
есть таблица, которая хранит меню,
id name after_id
положение пунктов меню можно менять и оно сохраняется в after_id, для первого - 0.
id | name  |after_id
1 | menu 1 | 0
2 | menu 2 | 4
3 | menu 3 | 2
4 | menu 4 | 1

как вывести список, чтобы порядок был таким: 1, 4, 2, 3?
select * from MENU m where ... order by case id when 1 then 1 when 4 then 2 when 2 then 3 when 3 then 4 else 100 + id end
источник

DE

Denis Efremov in MySQL
Ilia Zviagin
select * from MENU m where ... order by case id when 1 then 1 when 4 then 2 when 2 then 3 when 3 then 4 else 100 + id end
Я говорил что можно
источник

IZ

Ilia Zviagin in MySQL
Константин
с сохранением положения
Сделай явно поле "порядок в сотрировке" и всё.\
источник

К

Константин in MySQL
да, спасибо, так и сделал
источник

E

Evgenii in MySQL
Denis Efremov
SELECT * FROM (
 SELECT draws.*,
   (row_number() OVER (partition BY lottery_id ORDER BY created_at)) AS number
 FROM draws
) WHERE твоё условие
вроде бы получилось, сейчас тесты гоняю все проходит
источник

E

Evgenii in MySQL
спасибо
источник

E

Evgenii in MySQL
вопрос, а на сколько это хорошее решение? по идеи, он делает выборку из всей таблицы и для каждой записи считает row_number и потом мы этот результат фильтруем
источник

IZ

Ilia Zviagin in MySQL
Evgenii
вопрос, а на сколько это хорошее решение? по идеи, он делает выборку из всей таблицы и для каждой записи считает row_number и потом мы этот результат фильтруем
Запрос покажи...
источник

E

Evgenii in MySQL
к примеру,

SELECT   *
FROM     (
                 SELECT   *,
                          Row_number() OVER (partition BY lottery_id ORDER BY created_at) AS number
                 FROM     draws`) AS `draws
WHERE    status = 'active'
ORDER BY created_at DESC limit 3
источник

IZ

Ilia Zviagin in MySQL
Evgenii
к примеру,

SELECT   *
FROM     (
                 SELECT   *,
                          Row_number() OVER (partition BY lottery_id ORDER BY created_at) AS number
                 FROM     draws`) AS `draws
WHERE    status = 'active'
ORDER BY created_at DESC limit 3
Ну, тут будет вся таблица сортироваться по lottery_id , created_at.
источник

E

Evgenii in MySQL
то есть если у меня предположим 100к записей там, мы будем их все выбирать и потом фильтровать
источник

E

Evgenii in MySQL
то есть полюбому будет проход по каждой записи
источник

IZ

Ilia Zviagin in MySQL
Evgenii
то есть если у меня предположим 100к записей там, мы будем их все выбирать и потом фильтровать
Видимо, да. Ты же хочешь NUMBER ДО ФИЛЬТРАЦИИ.
источник

E

Evgenii in MySQL
источник

а

анна in MySQL
помогите исправить ошибки
источник