Реклама на сайте Advertise with us

MySQL запрос. Как корректно сформулировать?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 20/06/08 в 11:24       Ответить с цитатойцитата 

Есть mysql таблица в таблице 500 записей. Поле COLOR содержит номер цвета, номеров может быть от 1 до 30.
Теперь вопрос как корректно сформулировать запрос что бы выбрать записи только 13 случайно заданных цветов? Я когда то сформулировал вопрос вот так icon_smile.gif
Код:
$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;   
icon_smile.gif
Этот (в принципе рабочий) вариант смотрится не очень изящно... Как переделать?
Заранее спасибо.

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 20/06/08 в 11:42       Ответить с цитатойцитата 

Код:
SELECT color FROM pensils ORDER BY RAND() LIMIT 13

Power of the lime madness...

6
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 20/06/08 в 11:45       Ответить с цитатойцитата 

SELECT * FROM pensils ORDER BY RANDOM() LIMIT 13

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

6
 

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 20/06/08 в 11:47       Ответить с цитатойцитата 

ок
а если номера цветов жестко заданы? и их нужно перечислить?

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 20/06/08 в 13:17       Ответить с цитатойцитата 


Тогда прямым указанием цветов или ID, как у тебя сейчас, только лучше сделать не через id=1 OR id=9 OR id=17, а id IN (1,9,17). Вместо foreach можно так:
Код:
$sql = "SELECT * FROM pensils WHERE id IN(" . implode(",", $RANDcolors) . ")";

Power of the lime madness...

6
 

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 20/06/08 в 13:47       Ответить с цитатойцитата 

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) . ")";
оо супер! биг сэнкс коллега!
smail04.gif

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 20/06/08 в 14:49       Ответить с цитатойцитата 

хм а еще вопрос по теме...
как корректно составить запрос где проверяется 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

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 20/06/08 в 14:56       Ответить с цитатойцитата 

Используй скобки для группировки.

ВОСТОРГ ЗНАЧИТ BMW

6
 



С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430

Ссылка на сообщениеДобавлено: 20/06/08 в 15:11       Ответить с цитатойцитата 

разве обязательно юзать IS NULL можно и так `field` = NULL

6
 

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 20/06/08 в 15:16       Ответить с цитатойцитата 

samedi писал:
Используй скобки для группировки.
семен семеныч icon_smile.gif спасибо - недосямкал как то icon_smile.gif

dDan писал:
разве обязательно юзать IS NULL можно и так `field` = NULL
я когда вопрос возник так и написал, несработало, а вот через IS NULL - работает х3 почему

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 20/06/08 в 15:26       Ответить с цитатойцитата 

мануал читай...помогает.

6
 

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 20/06/08 в 15:28       Ответить с цитатойцитата 

xreload писал:
мануал читай...помогает.
угумс, надо смотаться за книжкой по sql

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »