MySQL ВЫБЕРИТЕ ГДЕ ..... ЕСЛИ - PullRequest
0 голосов
/ 20 января 2012

Я провел небольшой чат с PHP и MySQL.Но теперь у меня проблема: я хочу сделать запрос таким, чтобы, если сообщения были настроены как частные, я загружал их только в том случае, если они были отправлены этому пользователю.Если они не являются частными, просто загрузите их все.

Я знаю, что мне нужно несколько "если".Но как я мог это сделать?Мой код выглядит так:

SELECT message, private, FromPerson, ToPerson 
FROM chat WHERE time > '$time' 
and FromPerson != '$user_id' 
AND IF (private = '1') ToPerson = '$user_id'

Заранее спасибо.

1 Ответ

1 голос
/ 20 января 2012

Есть несколько способов достижения этого, среди которых:

AND (private <> '1' OR ToPerson = '$user_id')

Что в значительной степени означает "либо это не личное сообщение, либо оно адресовано этому конкретному пользователю"; или

AND IF(private = '1', ToPerson = '$user_id', TRUE)

Что само собой разумеется.

Последний комментарий: ради бога, пожалуйста, используйте подготовленные высказывания и не вставляйте внешний ввод в ваш SQL, иначе SQL-инъекция рано или поздно пойдет вам на попяту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...