2

我正在尝试制作一个其中包含一种 IF 语句的 SQL 语句。这是我目前的声明:

$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,它将选择不同的帧号。

非常感谢您的帮助,并在此先感谢您。

4

2 回答 2

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'

PS 不要忘记逃避$bikecodeSQL 注入。

于 2012-12-09T16:47:04.060 回答
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 注入。

于 2012-12-09T16:47:23.947 回答