2013-04-21 4 views
1

Прежде всего, я все еще изучаю, как работать с PHP/MySQL ... так что вообще можно использовать транзакции при выборе или только при вставке/обновлении?Можно ли использовать значение первого MySQL в качестве условия во втором, когда автокоммит выключен?

Если это возможно, то как бы я решить эту (псевдо-код):

Выключите автокоммит

Выберите идентификатор из AUTH, где псевдоним = [пользовательский ввод]

Выберите активный из флаги, где ID = ID СВЕРХУ ВЫБРАТЬ

Если: нет ошибок Зафиксировать

Else: Откат

Fetch строку из второго выбора


ли выше можно сделать с MySQL (синтаксис PHP, пожалуйста)?

ответ

3

Использование транзакций было бы бесполезным здесь, так как ваш запрос имеет дело только с SELECT.

Здесь 2 варианта. (Обратите внимание, что я включил только SQL-код.)

1. Вы можете использовать SELECT внутри инструкции SELECT.

SELECT active 
    FROM flags 
WHERE id IN (
       SELECT id 
       FROM auth 
       WHERE alias = 'userinput' 
      ); 

2. Другая возможность состоит в том, чтобы использовать JOIN.

SELECT f.active 
     FROM flags f 
INNER JOIN auth a 
     ON f.id = a.id 
    WHERE a.alias = 'userinput'; 

Здесь псевдонимы, как f и a используются для обозначения таблиц.

+0

Пошел с выбором в избранном решении, и он работал как шарм. Большое спасибо! – TobyTobson

 Смежные вопросы

  • Нет связанных вопросов^_^