|
|
|
| Доброго времени суток!
Есть такой запрос:
<? $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()?) | |
|
|
|
|
|
|
|
для: amigo63
(02.02.2009 в 13:12)
| | GROUP_CONCAT()
но надо помнить, что размер буфера результата этой агрегатной функции ограничен настройками сервера. | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2009 в 13:14)
| | Спасибо! Требуется сбрасывать буфер перед последующими подобными запросами?
P.S. Размер фиксирован для КАЖДОГО потока или для всех? | |
|
|
|
|
|
|
|
для: amigo63
(02.02.2009 в 13:42)
| | Это обычная агрегатная функция.
Вы перед вычислением очередного COUNT() буфер сбрасываете?
Про поток не понял. Какой поток? | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2009 в 13:49)
| | Нет, не сбрасываю, но про ограниченея буфера слышу впервые :)
Один поток - имею в виду один запрос с GROUP_CONCAT, обрабатываемый в данный момент времени.
Хотя, уже сам понимаю. Если на сайте будет одновременно 40 посетителей, персональный буфер для каждого никто создавать не будет :) | |
|
|
|
|
|
|
|
для: amigo63
(02.02.2009 в 14:02)
| | буфер персонально и непосредственно создается перед каждым запросом.
После запроса - уничтожается.
Просто чтобы это сделать, нужно знать, сколько памяти отводить. | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2009 в 14:25)
| | Понятно. Еще раз спасибо, Вы мне очень помогли :) | |
|
|
|