Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли получить несколько строк как последовательность?
 
 автор: amigo63   (02.02.2009 в 13:12)   письмо автору
 
 

Доброго времени суток!
Есть такой запрос:
<? $RQ=mysql_query("SELECT `id` FROM `table` WHERE definition");
//чтобы получить все id в одну переменную через запятую, придется выполнять
$var="";
while($arr=mysql_fetch_assoc($RQ)) $var.=$arr['id'].',';
$var=substr($var,0,-1);
?>
так вот, можно ли выбрать сразу все id в одну строку, чтобы получить их, например,
с помощью
<? $var=substr(mysql_result($RQ),0,-1)
?>
(может быть, нужен какой-то запрос с применением CONCAT()?)

  Ответить  
 
 автор: Trianon   (02.02.2009 в 13:14)   письмо автору
 
   для: amigo63   (02.02.2009 в 13:12)
 

GROUP_CONCAT()

но надо помнить, что размер буфера результата этой агрегатной функции ограничен настройками сервера.

  Ответить  
 
 автор: amigo63   (02.02.2009 в 13:42)   письмо автору
 
   для: Trianon   (02.02.2009 в 13:14)
 

Спасибо! Требуется сбрасывать буфер перед последующими подобными запросами?
P.S. Размер фиксирован для КАЖДОГО потока или для всех?

  Ответить  
 
 автор: Trianon   (02.02.2009 в 13:49)   письмо автору
 
   для: amigo63   (02.02.2009 в 13:42)
 

Это обычная агрегатная функция.
Вы перед вычислением очередного COUNT() буфер сбрасываете?
Про поток не понял. Какой поток?

  Ответить  
 
 автор: amigo63   (02.02.2009 в 14:02)   письмо автору
 
   для: Trianon   (02.02.2009 в 13:49)
 

Нет, не сбрасываю, но про ограниченея буфера слышу впервые :)
Один поток - имею в виду один запрос с GROUP_CONCAT, обрабатываемый в данный момент времени.
Хотя, уже сам понимаю. Если на сайте будет одновременно 40 посетителей, персональный буфер для каждого никто создавать не будет :)

  Ответить  
 
 автор: Trianon   (02.02.2009 в 14:25)   письмо автору
 
   для: amigo63   (02.02.2009 в 14:02)
 

буфер персонально и непосредственно создается перед каждым запросом.
После запроса - уничтожается.
Просто чтобы это сделать, нужно знать, сколько памяти отводить.

  Ответить  
 
 автор: amigo63   (02.02.2009 в 15:00)   письмо автору
 
   для: Trianon   (02.02.2009 в 14:25)
 

Понятно. Еще раз спасибо, Вы мне очень помогли :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования