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

时间:2013-10-08 03:40:58

标签: sql sql-server

我的数据库中有一个名为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的可用性鼠标。

3 个答案:

答案 0 :(得分:0)

  

这只是为了说明如何做到这一点。你应该使用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
}

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

如果您在此处显示的表“配件”中有数据,则您的查询应该只返回一行。除非你有多个行重复,如Item ='Mouse'且相同或不同的值也小于5,那么只有查询才会返回多个结果。 另外请注意,在解释中您使用表“配件”但在示例查询中您使用了表“accessories_other”。确保你正在对抗正确的桌子。

enter image description here