|
|
|
|
|
для: root
(05.05.2010 в 01:00)
| | Спасибо вам большое | |
|
|
|
|
|
|
|
для: Trianon
(05.05.2010 в 00:52)
| | >CONCAT нужно просто внутрь GROUP_CONCAT поставить, а не наоборот.
да, я подумал, нужно общую сумму..
CAST(CONCAT(ip, '-', hits) AS CHAR),
инче вернёт blob.. | |
|
|
|
|
|
|
|
для: gurza
(05.05.2010 в 00:38)
| | CONCAT нужно просто внутрь GROUP_CONCAT поставить, а не наоборот.
Была хотя бы малейшая причина какая-то растягивать текст запроса в одну строку?!! | |
|
|
|
|
|
|
|
для: root
(04.05.2010 в 22:18)
| | Почемуто данные хит приписываются только к последнему ип
$sql = "SELECT *,DATE(data) dt, SUM(hits) hit, CONCAT(GROUP_CONCAT(DISTINCT ip SEPARATOR ';'), '-', hits) ips FROM ".$prefix."_stats_data WHERE DATE(data) < DATE(NOW()) GROUP BY dt";
$res = $db->sql_query($sql);
$count = $db->sql_numrows($res);
$hits = 0;
if ($count != 0)
{
while($row = $db->sql_fetchrow($res))
{
echo "('NULL', '".$row["data"]."', '".$row["ips"]."', '".$row["hit"] ."') <br>";
}
}
|
результат работы
('NULL', '2010-05-01', '1294386103-2', '2')
('NULL', '2010-05-02', '1294386102;1294386105-4', '11')
('NULL', '2010-05-03', '1294386103;1294386102;1294386105;1294386106-2', '15')
|
| |
|
|
|
|
|
|
|
для: gurza
(04.05.2010 в 22:00)
| |
INSERT INTO archive (`data`, `ips`)
SELECT DATE(data) dt, CONCAT(GROUP_CONCAT(DISTINCT ip SEPARATOR ';'), '-', SUM(hits))
FROM tbl_name
WHERE DATE(data) <> DATE(NOW())
GROUP BY dt
|
| |
|
|
|
|
|
|
|
для: gurza
(04.05.2010 в 16:34)
| | спасибо работает
а если добавить в таблицу поле hits
Пример
id | ip | data|hits
1 | 1294386103 | 2010-05-04|45
2 | 1294386104 | 2010-05-04|33
3 | 1294386104 | 2010-05-04|44
4 | 1294386103 | 2010-05-03|22
и записать в таблицу архива в таком виде
data | ips
2010-05-02 |1294386104-22;1294386103-33
2010-05-03 |1294386104-44;1294386103-34
2010-05-04 |1294386104-55;1294386103-56 | |
|
|
|
|
|
|
|
для: gurza
(04.05.2010 в 16:34)
| |
INSERT INTO archive (`data`, `ips`)
SELECT DATE(data) dt, GROUP_CONCAT(DISTINCT ip SEPARATOR ';')
FROM tbl_name
WHERE DATE(data) <> DATE(NOW())
GROUP BY dt
|
| |
|
|
|
|
|
|
| Суть такова есть таблица в ней записываются ип адреса и даты
Пример
id | ip | data
1 | 1294386103 | 2010-05-04
2 | 1294386104 | 2010-05-04
3 | 1294386104 | 2010-05-04
4 | 1294386103 | 2010-05-03
5 | 1294386104 | 2010-05-03
6 | 1294386104 | 2010-05-03
7 | 1294386103 | 2010-05-02
8 | 1294386104 | 2010-05-02
9 | 1294386104 | 2010-05-02
нужно взять из базы числа не равные сегодняшней дате
$sql = "SELECT * FROM ".$prefix."_stats_data WHERE data !='".date("Y-m-d")."' ORDER by data";
|
и записать в таблицу архива в таком виде
data | ips
2010-05-02 |1294386104;1294386103
2010-05-03 |1294386104;1294386103
2010-05-04 |1294386104;1294386103
можно ли это сделать одним запросом | |
|
|
|
|