Моя база данных содержит таблицу person
с этими полями username, name, online, visible, ...
У меня есть следующий запрос для извлечения человека
SELECT *,
CASE
WHEN online = 0 THEN 0
WHEN visible = 0 THEN 0
ELSE online
END AS online
FROM person
where id = SOMEID
Я пытаюсь перевести онлайн / офлайн с учетом установленной пользователем логики видимости прямо в запрос. В основном показывать онлайн-статус в зависимости от статуса видимости (если пользователь выбрал быть невидимым, показывать в автономном режиме, даже если пользователь онлайн).
Этот вид работает, но с проблемой. Я получаю два повторяющихся столбца в результате этого запроса.
username | name | online | visible | ... | online
x | x | x | x | ... | x
По причинам, не зависящим от меня, я застрял с использованием SELECT *
вместо того, чтобы вручную вводить столбцы как SELECT username, name, visible, ...
. Есть ли способ исключить поле online
из SELECT *
? Поскольку он будет создан оператором CASE позже.