1

こんにちは私は現在、データベースから結果を取得する前にifを必要とするものをコーディングしています。

場合は、interacterIDがNULLでない場合は、それでフィルタリングします。以下を参照してください。

SELECT *
FROM status
WHERE type != "3"
AND userID = "'.$userID.'"
AND 
(
    interacterID IN ( #IF interacterID is null I want to skip this AND
        SELECT userID
        FROM userFriends
        WHERE (
            userFriends.userID = "'.$currentUserID.'"
            OR userFriends.interacterID = "'.$currentUserID.'"
        )
        AND status = "1"
    )
)
ORDER BY addedDate DESC
LIMIT 1

助けてくれてありがとう。

4

2 に答える 2

2

私がこの権利を読んでいるのなら、ここでIFが必要かどうかはわかりません(これは可能です)。単純なISNULLおよびORは、次の2つの場合に使用できます。

SELECT *
FROM status
WHERE type != "3"
AND userID = "'.$userID.'"
AND 
(
    interacterID IS NULL OR interacterID IN (
        SELECT userID
        FROM userFriends
        WHERE (
            userFriends.userID = "'.$currentUserID.'"
            OR userFriends.interacterID = "'.$currentUserID.'"
        )
        AND status = "1"
    )
)
ORDER BY addedDate DESC
LIMIT 1    
于 2012-10-22T10:47:28.660 に答える
1
SELECT *
FROM status
WHERE type != "3"
AND userID = "'.$userID.'"
AND 
(
interacterID IS NOT NULL  (
    SELECT userID
    FROM userFriends
    WHERE (
        userFriends.userID = "'.$currentUserID.'"
        OR userFriends.interacterID = "'.$currentUserID.'"
    )
    AND status = "1"
)
  )
  ORDER BY addedDate DESC
  LIMIT 1  

インタラクターIDがnullの場合、コードは実行されません

于 2012-10-22T10:50:49.330 に答える