Можете ли вы иметь OR в операторе WHERE внутри запроса mysql? - PullRequest
0 голосов
/ 02 октября 2011

Возможно ли иметь ИЛИ внутри оператора WHERE в запросе mysql, как я сделал ниже.

$query = mysql_query("SELECT * FROM fields WHERE post_id=$id OR post_id="" order by id desc") or die(mysql_error());

Это приводит к ошибке сервера при запуске на моем сайте.Любые мысли о том, как я мог бы сделать это?

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

Ответы [ 3 ]

3 голосов
/ 02 октября 2011

Да, вы можете иметь ИЛИ.Какой тип post_id?

Если post_id является символьным типом:

"SELECT * FROM fields WHERE post_id='$id' OR post_id='' order by id desc"

Если это целое число, то оно не может быть равно пустой строке.Вы имели в виду post_id IS NULL вместо?

0 голосов
/ 02 октября 2011

В чем ошибка?Похоже, вы не избежали двойной кавычки в запросе.Должно быть:

$query = mysql_query("SELECT * FROM fields WHERE post_id=$id OR post_id=\"\" order by id desc") or die(mysql_error());
0 голосов
/ 02 октября 2011

в чем ошибки .. так как ваш запрос в порядке, но у вас проблемы со строками со всеми этими двойными кавычками .. попробуйте что-то вроде этого ..

$query = mysql_query("SELECT * FROM fields 
           WHERE post_id = " . $id . " OR post_id='' order by id desc") 
         or die(mysql_error());
...