MySQL SELECT WHERE ..... IF

时间:2012-01-20 16:45:56

标签: mysql database if-statement

我与PHP和MySQL进行了一次小聊天。但现在我遇到了一个问题:我想进行一个查询,如果消息被设置为私有,我只有在它们被发送给这个用户时才加载它们。如果它们不是私有的,只需加载它们。

我知道我需要一个“if”。但我怎么能这样做?我的代码如下:

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

提前谢谢。

1 个答案:

答案 0 :(得分:1)

有几种方法可以实现这一目标,其中包括:

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

这几乎意味着“要么它不是私人消息,要么是针对特定用户”;或

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

这是不言自明的。

最后评论:对于对上帝的爱,请使用预备语句,不要将外部输入内联到SQL中,否则SQL注入迟早会踢你的屁股。