powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / почему несколько IF выводятся в несколько строк, а не в 1?
9 сообщений из 9, страница 1 из 1
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373530
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или я затупил, или мускуль не едет - не пойму
например такой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT
    IF(`type`=5 AND `region`>0,1,0) AS `kv`,
    IF(`type`=6 AND `region`>0,1,0) AS `dom`,
    IF(`type`=7 AND `region`>0,1,0) AS `zemlya`
    FROM `addresses`
    WHERE `id`=13287380;


выдаёт такой ответ:
Код: sql
1.
2.
3.
4.
5.
6.
+----+-----+--------+
| kv | dom | zemlya |
+----+-----+--------+
|  1 |   0 |      0 |
|  0 |   0 |      1 |
+----+-----+--------+



а как сделать, чтобы в одну строчку было 1 0 1 ?
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373537
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,

В одной записи не может быть значения `type` равного сразу и числу 5, и числу 7.
Вероятно, вам нужна какая-то группировка. Но какая - из показанных данных не ясно.
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373562
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну чтобы в одну строку получилось
если ORDER BY по id делать, он оставляет что-то одно
мне и самому не ясно, что тут нужно сделать (
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373564
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78как сделать, чтобы в одну строчку было 1 0 1 ?Добавить группировку. И соответственно MAX().
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373607
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78мне и самому не ясно, что тут нужно сделать (Ну тогда покажите пример исходных данных и желаемый результат.
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373664
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinatip78как сделать, чтобы в одну строчку было 1 0 1 ?Добавить группировку. И соответственно MAX().

лол и правда вот так заработало:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT `id`,
MAX(IF(`type`=5 AND `region`>0,1,0)) AS `kv`,
MAX(IF(`type`=6 AND `region`>0,1,0)) AS `dom`,
MAX(IF(`type`=7 AND `region`>0,1,0)) AS `zemlya`
FROM `addresses`
WHERE `id`=13287380


мая нипанимай
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39373844
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78лол и правда вот так заработало:Так вы сгруппировали все записи выборки в одну.

Кстати, можно было чуть проще:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT `id`,
MAX(`type`=5 AND `region`>0) AS `kv`,
MAX(`type`=6 AND `region`>0) AS `dom`,
MAX(`type`=7 AND `region`>0) AS `zemlya`
FROM `addresses`
WHERE `id`=13287380
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39374465
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksofttip78лол и правда вот так заработало:Так вы сгруппировали все записи выборки в одну.
да где?! всё также 3 разных строки
...
Рейтинг: 0 / 0
почему несколько IF выводятся в несколько строк, а не в 1?
    #39374480
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78miksoftпропущено...
Так вы сгруппировали все записи выборки в одну.
да где?! всё также 3 разных строкиА что тогода означало ваше "вот так заработало" ?

Вообще, если все поля обернуть в агрегатные функции (тот же MAX, например), то запрос автоматически группируется в одну запись. Но добавление в выборку поля id без агрегатных функций делает результат неопределенным логически. И, кстати, по этой причине такой микс не допускается в более "серьезных" СУБД.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / почему несколько IF выводятся в несколько строк, а не в 1?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]