PHP MySQL比较两列并按顺序返回?

时间:2012-08-01 13:58:11

标签: php mysql

简单的问题是错误吗?

$result = mysql_query("
    SELECT * FROM orders 
    WHERE Username='$username' 
        AND completed > ordered 
    ORDER BY completed ASC 
    LIMIT 1
") or die(mysql_error());

没有错误,没有数据。

2 个答案:

答案 0 :(得分:3)

查询的语法可能正确,但您的算法可能不是:

SELECT * FROM orders 
WHERE Username = ? 
AND completed > ordered 
ORDER BY completed ASC 
LIMIT 1

(然后确保将查询绑定到$username以缓解SQL注入攻击。)

你有一张orders表,大概包含......它含有什么?它不能是日期戳,因为所有订单将在完成后完成。

所以一定是INT吗?并且您希望选择那些完成订单而不是AND completed > ordered)的订单,这对您的公司来说是不可能的。试试completed < ordered

答案 1 :(得分:-1)

很抱歉打扰所有人,但这是简单的拼写错误通知“&gt;”它应该是“&lt;”因为完成的不能大于订购的那个。

$result = mysql_query("SELECT * FROM orders WHERE Username='$username' AND completed > ordered ORDER BY completed ASC LIMIT 1") or die(mysql_error());