За последние 24 часа нас посетили 18115 программистов и 1650 роботов. Сейчас ищут 1543 программиста ...

UPDATE для SELECT

Тема в разделе "MySQL", создана пользователем ваяс, 13 ноя 2012.

  1. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Прошу помощи в составлении запроса
    UPDATE users SET hash = ?, date_success_in = ?, num_try_incorrect_pass = 0 WHERE email = ? \n
    SELECT hash, name, id FROM users WHERE email = ?
    Как можно выполнить сначала UPDATE, а после из обновляемой строки вернуть SELECT с уже обновленными полями. Всё это необходимо сделать в один запрос.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну сделай двумя запросами, в чем беда?
     
  3. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Да беды то нету, но все таки хочется одним запросом, так будет красивее и элегантнее и плюс ещё одна итерация в базе, а не две, неужели одним запросом невозможно?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не будет

    что значит одним запросом? чтобы один раз вызывать метод query?
     
  5. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Скорее метод prepare. Не один раз вызвать метод, вызовется он один раз, а одну итерацию в базе совершить.
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    -сделать UPDATE
    -а SELECT делать и не нужно, ибо поля hash, name, id(last_insert_id) уже и так известны
     
  7. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Как это они известны?? Ну hash согласен, а (name, id)? Или ещё пару полей захочется добавить например organization или group или ещё что то
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я за два запроса. сколько раз делается это?
     
  9. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Это делается ОЧЕНЬ БЫСТРО ))) так как записей в базе всего 600 я всего лишь хочу красивое решение. Да и на будущее я думаю это знание не повредит. Сейчас у меня и так два запроса. К базе в любом случае обращение происходит один раз, но в базе две итерации.
    Просто вдруг кто то знает, как подобные фитчи делать.
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    одним запросом никак.