Как соотнести два столбца в PHP MYSQL

Я создал одну таблицу запросов, которая содержит всю информацию о запросах.

Таблица, содержащая эти столбцы:

requestid , itemrequest1, itemrequest2, itemrequest3, quantity1, quantity2, quantity3

Как сделать так, чтобы, если itemrequest имеет значение в столбце itemrequest2, это будет принимать количество из столбца quantity2,

Мой запрос таков:

$query2=mysql_query("select * from tbl_request WHERE unit='$unit' AND  (itemrequest1='$itemrequest' or itemrequest2='$itemrequest' or  itemrequest3='$itemrequest')");
$record_num=mysql_num_rows($query2);

while ($data1 = mysql_fetch_array($query2))

Проблема в том, что когда $itemrequest имеет значение в столбце itemrequest3, количество всегда будет отображать количество из столбца 1.

1 ответ

Решение

Вы можете использовать условия в своем запросе, чтобы выбрать правильный столбец в зависимости от значения другого столбца.

SELECT requestid, 
    (CASE WHEN itemrequest1 = '$itemrequest' THEN quantity1
        ELSE (
            CASE WHEN itemrequest2 = '$itemrequest' THEN quantity2
            ELSE (
                CASE WHEN itemrequest3 = '$itemrequest' THEN quantity3
            END)
        END)
    END)
FROM tbl_request

Вы должны внимательно посмотреть на структуру вашей базы данных, хотя, если вам придется делать такие вещи, возможно, будет лучше улучшить вашу структуру и иметь лучшие таблицы / поля.

Другие вопросы по тегам