Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
MySQL запрос. Как корректно сформулировать?
Новая тема
Ответить
цитата
20/06/08 в 11:24
Lamagro
Есть mysql таблица в таблице 500 записей. Поле COLOR содержит номер цвета, номеров может быть от 1 до 30.
Теперь вопрос как корректно сформулировать запрос что бы выбрать записи только 13 случайно заданных цветов? Я когда то сформулировал вопрос вот так
Код:
$sql = "SELECT * FROM pensils WHERE ";
$as = "";
foreach ($RANDcolors as $key => $val)
{
$sql .= $as." id=".addslashes($val);
$as = " OR ";
}
$res = mysql_query($sql); $error = mysql_error();echo $error;
Этот (в принципе рабочий) вариант смотрится не очень изящно... Как переделать?
Заранее спасибо.
цитата
20/06/08 в 11:42
Corex
Код:
SELECT color FROM pensils ORDER BY RAND() LIMIT 13
цитата
20/06/08 в 11:45
Stek
SELECT * FROM pensils ORDER BY RANDOM() LIMIT 13
цитата
20/06/08 в 11:47
Lamagro
ок
а если номера цветов жестко заданы? и их нужно перечислить?
цитата
20/06/08 в 13:17
Corex
Тогда прямым указанием цветов или ID, как у тебя сейчас, только лучше сделать не через id=1 OR id=9 OR id=17, а id IN (1,9,17). Вместо foreach можно так:
Код:
$sql = "SELECT * FROM pensils WHERE id IN(" . implode(",", $RANDcolors) . ")";
цитата
20/06/08 в 13:47
Lamagro
Corex писал:
Тогда прямым указанием цветов или ID, как у тебя сейчас, только лучше сделать не через id=1 OR id=9 OR id=17, а id IN (1,9,17). Вместо foreach можно так:
Код:
$sql = "SELECT * FROM pensils WHERE id IN(" . implode(",", $RANDcolors) . ")";
оо супер! биг сэнкс коллега!
цитата
20/06/08 в 14:49
Lamagro
хм а еще вопрос по теме...
как корректно составить запрос где проверяется 2 условия и на основе совпадений этих условий происходит дальнейшая выборка например вот так:
Код:
$sql = "SELECT id FROM pensils WHERE color IN(1,3,5,7) AND used IS NULL OR used='NO'";
смысл в том что нужно выбрать все записи с цветами 1,3,5,7 но обязательно те в которых поле used равно NULL или NO
цитата
20/06/08 в 14:56
samedi
Используй скобки для группировки.
цитата
20/06/08 в 15:11
dDan
разве обязательно юзать IS NULL можно и так `field` = NULL
цитата
20/06/08 в 15:16
Lamagro
samedi писал:
Используй скобки для группировки.
семен семеныч
спасибо - недосямкал как то
dDan писал:
разве обязательно юзать IS NULL можно и так `field` = NULL
я когда вопрос возник так и написал, несработало, а вот через IS NULL - работает х3 почему
цитата
20/06/08 в 15:26
xreload
мануал читай...помогает.
цитата
20/06/08 в 15:28
Lamagro
xreload писал:
мануал читай...помогает.
угумс, надо смотаться за книжкой по sql
Новая тема
Ответить
Эта страница в полной версии