次のようなものは、私がやろうとしていることです
SELECT id, status, Gid, Uid, note FROM notes LIMIT 10
ただし、ステータスIDは異なる可能性があり、次のようなものにする必要があります
SELECT a.id, a.status, a.Gid, a.Uid, a.note
FROM notes as a
WHERE
IF(a.status < 2, DONT SELECT),
IF(a.status == 2,
(SELECT approved FROM friends WHERE Uid = a.Uid AND Fid = ".$_SESSION['Uid'].")
IF(approved = 1, SELECT ROW, else DONT)
)
IF(a.status == 3, SELECT)
IF(a.status == 4,
(SELECT Gid FROM friends WHERE Uid = a.Uid AND Fid = ".$_SESSION['Uid'].")
IF(Gid == a.Gid, SELECT ROW, else DONT)
ORDER BY id DESC
LIMIT 10
CASEコマンドを調べましたが、その使い方がわかりませんが、それがその方法であることはわかりますが、ええ..方法がわかりません。上記は私がやろうとしていることの例です。a.Uid は異なる ID である可能性があるため、ステータス == 2 または 4 の場合、表示しているユーザーが承認された友人であるか、groupId (Gid )
このクエリを修正するための助けをいただければ幸いです。まだ本番環境にないため、必要に応じてメモ テーブルを少し変更できますが、お勧めしません。私は提案を受け入れます
前もって感謝します!