0

我创建了一个包含所有请求信息的请求表。

包含这些列的表:

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 列的数量。

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 回答