[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Индекс с GROUP_CONCAT
inpost
Собственно, верен ли запрос данный и какие индексы вернее всего было бы расставить тут:
			SELECT COUNT( * ) , 
GROUP_CONCAT( CAST( `id` AS CHAR ) ) AS `id`
FROM `dat_user`
WHERE `ip_reg` <> ''
GROUP BY `ip_reg`
HAVING COUNT( * ) > 1

Для GROUP_CONCAT тоже необходим индекс? Или я делаю ошибку тут?



Спустя 13 минут, 36 секунд (11.10.2012 - 22:11) Oyeme написал(а):
Для чего Вам преобразование ?

CAST( `id` AS CHAR ) 


This function returns a string result with the concatenated non-NULL values from a group.

Для ip_reg следует поставить index

Спустя 15 минут, 10 секунд (11.10.2012 - 22:26) inpost написал(а):
Oyeme
Конкат не хотел работать, а гугл подсказал именно для int полей переводить в CHAR.

Спустя 21 минута, 58 секунд (11.10.2012 - 22:48) Oyeme написал(а):
Неважно какого типа у Вас поле,происходит конкатенация в строку. wink.gif
Использование CAST в этом контексте не имеет смысла.

Если Вы сомневаетесь в том что , ставить index или нет - используйте EXPLAIN. wink.gif

Спустя 5 минут, 27 секунд (11.10.2012 - 22:53) inpost написал(а):
Oyeme
Запустил без CAST, тоже работает. Я помню, что была проблема, только не помню причину, запросу уже пол года sad.gif Но я не просто так ставил CAST, может старая версия и не работало, может из другого запроса по аналогии взял... странно всё это!
А насчёт GROUP_CONCAT по полю id - тут не нужен индекс? То есть достаточно лишь по ip_reg ?


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.