2012-06-12 3 views
1

Я начинаю изучать php и мой sql.Правильное использование где в mysql?

Я не знаю, что не так с этим кодом.

$result = mysql_query("SELECT * FROM tbl where field1 (1,2,3)"); 

Я получаю эту ошибку.

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in test.php on line 52 

Когда я заменить эту конкретную строку с этим

$result = mysql_query("SELECT * FROM tbl"); 

Он отлично работает, но он возвращает все строки.

Я пытаюсь отфильтровать отображение строк, используя команду where в mysql.

Каков правильный синтаксис для этого?

Благодаря

+1

Отсутствие причины для -1. Вам просто не хватает слова «IN» между полями 1 и (1,2,3) – PriestVallon

+0

спасибо. Это решает. – Wayne

ответ

4

Вам нужен IN пункт:

$result = mysql_query("SELECT * FROM tbl where field1 IN (1,2,3)"); 

Этот запрос является аналогом:

SELECT * FROM tbl where field1=1 OR field1=2 OR field1=3 

Также, пожалуйста, имейте в виду mysql_query было deprecated и его использование не рекомендуется.

+0

Не совсем уверен, почему это было пропущено, но хорошо .. –

+0

Спасибо. Я пытаюсь принять ваш ответ, но он говорит, что я могу принять за 4 минуты. Я попробую еще раз. – Wayne

+0

Возможно, это было опущено, потому что в нем ничего не говорится о том, что функции mysql_ * 'устарели (или близки к нему) и увековечивают будущие миллионы сообщений об этом, не работая вместо того, чтобы обучать людей альтернативам (' mysqli' или 'PDO') теперь, чтобы их приложения не ломались в будущих обновлениях mysql ... – Justin

0

Попробуйте это:

$result = mysql_query("SELECT * FROM tbl where field1 IN (1,2,3)"); 
0

Во-первых .. прекратить использование расширения MySQL, как это осуждается ...

Помимо этого, вы делаете что-то вроде этого:

$result = mysqli_query("SELECT * FROM tbl WHERE field IN (1,2,3)");

И вот несколько других примеров, которые не совсем подходят для вашего случая ...

$result = mysqli_query("SELECT * FROM tbl WHERE date BETWEEN "2012-06-01 00:00:00" AND "2012-06-12 23:59:59");

http://dev.mysql.com/doc/refman/5.0/en/where-optimizations.html даст вам некоторую информацию о самом предложении WHERE и как правильно использовать и оптимизировать его ..

Надеется, что это помогает.

+0

Что такое расширение mysql? – Wayne

+0

функции 'mysql_ *' ('mysql_query',' mysql_num_rows', 'mysql_select_db' и т. Д.) Являются устаревшими функциями (или рядом с ним), поэтому лучше использовать альтернативы, например ... mysqli 'или' PDO' ... – Justin

+0

Я попытался изменить mysql_ с помощью mysqli_, и теперь я получаю ошибки? есть ли у вас ресурс для синтаксиса mysqli? – Wayne

Смежные вопросы