试图制作某种类型的IF mySQL声明

时间:2012-12-09 16:42:06

标签: php mysql sql database

我正在尝试创建一个SQL语句,其中包含一种IF语句。这是我目前的陈述:

$sql = "SELECT b.FrameNumber, b.BikeCode, p.FrameNumber 
        FROM BikeStock b LEFT JOIN Purchase p 
               on b.FrameNumber = p.FrameNumber 
        WHERE b.bikecode = '$bikecode'";

我想将上述声明与下面的文字结合起来,但不确定如何。

如果BikeStock表中的PurchaseID值大于0,它将选择不同的framenumber。

非常感谢帮助,并提前致谢。

2 个答案:

答案 0 :(得分:0)

你应该

SELECT b.BikeCode, IF(b.PurchaseID > 0, 
        p.FrameNumber, b.FrameNumber) AS FrameNumber 
    FROM BikeStock b 
    LEFT JOIN Purchase p on b.FrameNumber = p.FrameNumber 
    WHERE b.bikecode = '$bikecode'

P.S。不要忘记为SQL注入转义$bikecode

答案 1 :(得分:0)

SELECT b.FrameNumber, b.BikeCode, 
    CASE WHEN b.purchasreID > 0 THEN p.other_framenumber ELSE p.FrameNumber END AS FrameNumber
FROM BikeStock b LEFT JOIN Purchase p 
ON b.FrameNumber = p.FrameNumber
WHERE b.bikecode = '$bikecode'

除此之外,请考虑Bobby Tables以防止SQL注入。