我正在尝试创建一个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。
非常感谢帮助,并提前致谢。
答案 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注入。