Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка строки по данным из другой строки. / 13 сообщений из 13, страница 1 из 1
21.09.2015, 12:04:13
    #39057165
ViseNupper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
Приветствую, столкнулся с проблемой и не могу найти решение мускул толком не знаю, так что простите если вопрос глупый. Есть софтинка она пишет лог в базу изменить то как она это делает нельзя. Таблица огромна, но интересующие поля выглядят образно так.

|id |status|
+---------+
|1234|7349 |
|1234|blabla |
|1234|blabla |
|1234|Finish |
|1735|9874 |
|1735|blabla |
|1735|failure |

Задача стоит найти все статусы failure и возвращать их начальный статус (В даннос млучае - 9874), зная что процесс идет под одним и тем же id. Можно ли как то это сделать одним запросом, или же средствами пхп делать миллиард запросов по каждому id?
...
Рейтинг: 0 / 0
21.09.2015, 12:07:48
    #39057171
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
ViseNupper|1735|9874 |
|1735|blabla |
|1735|failure |а кроме порядка выдачи на экран есть какой-нибудь критерий сортировки? ид записи, таймштамп там или ещё что такое... и вообще, читайте FAQ: Выборка первой/последней записи в группах
...
Рейтинг: 0 / 0
21.09.2015, 12:17:05
    #39057178
ViseNupper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
В том и проблема зацепится в таблице толком больше не за что, интервал между сбоем и стартом процесса может быть разным в зависимости от того что пошло не так. все что связывает это поле ид. ФАК уже изучаю, но пока из того что понял это не совсем то что нужно. (Может я и не прав)
...
Рейтинг: 0 / 0
21.09.2015, 12:24:47
    #39057191
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
ViseNupper,

хмм... ну а стартовые записи как-то от остальных отличаются? например, они одни состоят только из цифр, или они одни имеют длину в 4 символа?
...
Рейтинг: 0 / 0
21.09.2015, 12:28:13
    #39057199
ViseNupper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
tanglir,
Если так подумать, то они только цифровые всегда, длинна может варьироваться.
...
Рейтинг: 0 / 0
21.09.2015, 13:56:31
    #39057324
ViseNupper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
Простите, как выяснилось ввел в заблуждение изначально таблица выглядит несколько иначе она все таки из трех полей не сразу это понял...
|id |status|data|
+---------+
|1234|Start |7349|
|1234|blabla |blabla|
|1234|blabla |blabla|
|1234|Finish |blabla|
|1735|Start |9874|
|1735|blabla |blabla|
|1735|failure |blabla|
Свой вопрос решил следующей конструкцией, поправьте теперь насколько это правильное решение.
Код: sql
1.
SELECT log.data FROM log LEFT JOIN log AS t2 USING(id) WHERE log.status = 'Start' AND t2.status = 'failure';


Выглядит как лютая некрофилия, знаю, но нужную инфу выдает подскажите можно ли вообще так делать и как это повлияет на производительность при 1000+ записях.
...
Рейтинг: 0 / 0
21.09.2015, 15:18:08
    #39057460
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
ViseNupperВыглядит как лютая некрофилия
Логика выглядит нормально, никакой некрофилии и прочих извращений не наблюдается. Вот её реализация - да, не очень, главным образом из-за того, что состряпана нечитаемая смесь имени и алиаса.

ViseNupperкак это повлияет на производительность при 1000+ записях.
Никак.
...
Рейтинг: 0 / 0
21.09.2015, 17:13:42
    #39057632
ViseNupper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
Akina,
А можно по подробнее, не совсем понял что вы имели в виду.
...
Рейтинг: 0 / 0
21.09.2015, 18:42:11
    #39057714
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
ViseNupperне совсем понял что вы имели в видуОн имел в виду, что если уж даёте алиасы таблице, так давайте их обеим её инстансам, А то как-то с толку сбивает при прочтении.
...
Рейтинг: 0 / 0
21.09.2015, 23:16:01
    #39057862
ViseNupper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
Тобишь в целом такая конструкция вполне подойдет?
...
Рейтинг: 0 / 0
22.09.2015, 08:08:45
    #39057949
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
ViseNupper..Задача стоит найти все статусы failure и возвращать их начальный статус..это поподробнее... вам нужно ДОПИСАТЬ в лог новое состояние Start, удалить failure, или просто найти все id с ошибочными состояниями? какие варианты STATUS имеются? После failure может быть другое рабочее состояние?

возвращать их начальный статус - каким образом?
...
Рейтинг: 0 / 0
22.09.2015, 08:10:27
    #39057950
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
Alex_Ustinovвозвращать их начальный статус - каким образом?ну селектом же
...
Рейтинг: 0 / 0
22.09.2015, 08:37:51
    #39057965
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка строки по данным из другой строки.
tanglir,

ну "возвращать" в моем понимании как то "погасить красную лампочку"... )

ViseNupper?
может есть отсечка по времени? по timestamp неявно?
DDL таблицы посмотрите-покажите
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка строки по данным из другой строки. / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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