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'

$bikecodePS SQL インジェクションのエスケープを忘れないでください。

于 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'

それとは別に、SQL インジェクションを防ぐためにBobby Tablesを検討してください。

于 2012-12-09T16:47:23.947 に答える