繁体   English   中英

如何从一个表的2列中检索数据?

[英]How to retrieve data from 2 column in one table?

我的数据库中有一个名为Accessories_other的表。 在表中,我有列:

1)项目2)可用

这是有关各列中数据如何显示的说明。

项目

老鼠

键盘

电缆

可用的

4

6

3

问题是,我想选择Item ='Mouse'以及列'Available'= 4。 如果可用的鼠标少于5只,它将给我发送电子邮件以进行下一步。 但是我一直坚持到这一阶段。

这是我创建的SQL语句,它计算“可用”列的每一行,如果“可用”列的行少于5,则发送电子邮件,这不是我想要的。

$sql ="SELECT Item, Available FROM accessories_other WHERE Item ='Mouse' 
AND Available <5";

我该怎么做,以便它可以检索可用性低于5的鼠标。

这只是为了展示如何完成。 您应该使用MySQLi或PDO。 同样,如果在生产环境中,则不应向用户显示MySQL错误。

您可以通过以下两种方式之一进行操作:

//  SQL to find Available value for Item Mouse
$sql = "SELECT Item, Available FROM accessories_other
        WHERE Item = 'Mouse'";
$result = mysql_query( $sql ) or die( 'Query failed.'.mysql_error() );
$row = mysql_fetch_array( $result ) ;
if( mysql_num_rows( $result ) > 0 )
{
    echo $row['Item'] ,': ' ,$row['Available'];
    if( $row['Available'] < 5 )
    {
    //  Code to send email
    }
    else
    {
    //  Code to what ever you would like to do here 
    }
}

要么

//  SQL to find Available value for Item Mouse if it is less than 5
$sql = "SELECT Item, Available FROM accessories_other
        WHERE Item = 'Mouse' AND Available < 5";
$result = mysql_query( $sql ) or die( 'Query failed.'.mysql_error() );
if( mysql_num_rows( $result ) > 0 )
{
    //  Code to what ever you would like to do here
}
else
{
    echo $row['Item'] ,': ' ,$row['Available'];
    //  Code to send email
}

我认为您的查询不会显示小于5的鼠标结果。我建议您尝试:

$sql ="SELECT Item, Available FROM accessories_other WHERE Item ='Mouse';

然后,尝试用另一种语言实现您的代码..如果我没记错的话,您正在使用php ..

如果您在表“ accessories”中有数据,则查询应该只返回一行,如下所示。 除非您有重复项,例如Item ='Mouse'的多行行,并且相同或不同的值也小于5,否则只有查询会返回多个结果。 还要注意,在说明中,您使用表“ accessories”,但在示例查询中,您已使用表“ accessories_other”。 确保您在正确的桌子上工作。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM