У меня есть таблица с именем payment
, который состоит из колонн - bill ID
, group ID
, u1
, u1paid
, u2
, u2paid
, u3
, u3paid
, u4
, u4paid
, u5
, u5paid
. Я хочу сохранить значение одного из платных столбцов , если мой текущий идентификатор пользователя равен идентификатору, хранящемуся в одном из столбцов u1, u2 ... и т. Д. В строке, которую я выбрал.SQL выберите значение из столбца, когда другой столбец равен заданному значению
Например, если текущий идентификатор пользователя равно ID хранящихся в u3
, Я хотел бы хранить значение u3paid
в переменной PHP. Что такое команда SQL для достижения этой цели?
Попытка решения:
SELECT u1paid if u1 = SessionID or u2paid if u2 = SessionID or
u3paid if u3 = SessionID or u4paid if u4 = SessionID or
u5paid if u5 = SessionID FROM payment WHERE billID = BILLID;
Я знаю, что это не правильный синтаксис, но это ближайший я могу получить к чему-то SQL-подобного.
Второе редактирование (на основе ответа twoleggedhorse в):
$payment = "SELECT CASE WHEN u1 = '".$_SESSION['ID']."' THEN u1paid WHEN u2 =
'".$_SESSION['ID']."' THEN u2paid WHEN u3 = '".$_SESSION['ID']."' THEN u3paid
WHEN u4 = '".$_SESSION['ID']."' THEN u4paid
WHEN u5 = '".$_SESSION['ID']."' THEN u5paid END AS PAID
FROM payment WHERE trackbill = '".$row['BID']."';"
После этого я пытаюсь получить доступ к значению данного заявления $ оплаты [ «ЗАПЛАЧЕННОЙ»], но до сих пор не за работой. Разве я все еще что-то шучу в этом?
Edit3: Вышеприведенная команда работает, я просто перепутал одну из имен переменных: P
что ваша попытка? – Trent
Я пробовал экспериментировать с аргументом case, но я просто не могу придумать ничего конкретного. Это небольшая часть большего назначения, и мы не рассматривали ничего, кроме простых операторов Select и Update в SQL, поэтому я немного потерян. –
хорошо, это звучит как довольно простая инструкция SELECT. Пожалуйста, отредактируйте свой вопрос, по крайней мере, с попыткой. Я имею в виду, что вы в основном можете это решить, просто поговорив с ним ... Вам нужно ВЫБРАТЬ u3paid из таблицы платежей, где u3 равняется чему-то ... Не путайте, просто введите то, что вы хотите на простом английском языке, Посмотрим на запрос ... – Trent