0

すべてのリクエスト情報を含む 1 つのリクエスト テーブルを作成しました。

次の列を含むテーブル:

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

itemrequestcolumn に値がある場合、 columnitemrequest2から数量を取得するように関係を作成する方法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 の数量を表示することです。

4

1 に答える 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

ただし、データベース構造をよく見る必要があります。このようなことを行う必要がある場合は、構造を改善し、より良いテーブル/フィールドを用意することをお勧めします。

于 2015-06-26T09:30:18.673 に答える