169 похожих чатов

Всем привет, помогите пожалуйста с запросом. Есть таблицы, юзеры, группы,

юзер_груп_релейшен, юзер_груп_ролс, мне нужно получить всех мемберов группы и еще всякие разные условия, но также мне еще нужно получить информацию о роли юзера, типо isAdmin = true, isModerator=true, и после этого отсортировать так, чтобы админы и модераторы были на первом месте. Вот как раньше выглядел запрос когда юзер мог быть админом только в одной группе и инфа об этом хранилась в модели юзера

SELECT tu.id,
tu.firstname,
tu.lastname,
role,
CONCAT('${constant.profile_image}',profile_image) as profile_image,
CONCAT('${constant.cover_image}',cover_image) as cover_image,
CONCAT('${
constant.profile_image_imagekit
}',profile_image, ?) as profile_image_imagekit,
CONCAT('${
constant.profile_image_imagekit
}',cover_image, ?) as cover_image_imagekit,
((6372 * 2 * ASIN(
SQRT(POWER(SIN((${loginSession.lat} - tu.lat) * pi() / 180 / 2), 2) +
COS(${loginSession.lat} * pi() / 180) * COS(tu.lat * pi() / 180) *
POWER(SIN((${loginSession.lng} - tu.lng) * pi() / 180 / 2), 2))
)) * 1000) AS distance,
IF(
tu.id IN (${friendsList.primaryUsers.join(', ')}),
TRUE,
FALSE
) as is_friends
FROM tbl_user tu
LEFT JOIN tbl_users_groups_relations tug ON tu.id = tug.user_id
LEFT JOIN tbl_groups tg ON tug.group_id = tg.id
WHERE tg.id = ?
AND IF(
tg.type != '${GROUP_TYPES.Gym}',
tu.id IN
(${[...friendsList.primaryUsers, ...friendsList.otherUsers].join(', ')}),
tg.type = '${GROUP_TYPES.Gym}'
)
AND tu.is_delete = '0'
AND tu.deleted_at IS NULL
HAVING (distance between 0 AND 200000)
ORDER BY
FIELD(role, 'A', 'M', 'U'),
profile_image = '${constant.default_image_name}',
tu.firstname,
tu.lastname
LIMIT ?
OFFSET ?

2 ответов

17 просмотров

FIELD(role, 'A', 'M', 'U') это функция какая-то?

Alex- Автор вопроса

Не, это mysql так умеет

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта