如何关联 PHP MYSQL 中的两列
How to relate two column in PHP MYSQL
我创建了一个包含所有请求信息的请求table。
table 包含这些列:
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 列中的数量。
您可以在查询中使用条件,以便 select 根据另一列的值找到正确的列。
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
虽然你应该仔细看看你的数据库结构,如果你必须这样做,最好改进你的结构并有更好的tables/fields。
我创建了一个包含所有请求信息的请求table。
table 包含这些列:
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 列中的数量。
您可以在查询中使用条件,以便 select 根据另一列的值找到正确的列。
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
虽然你应该仔细看看你的数据库结构,如果你必须这样做,最好改进你的结构并有更好的tables/fields。