Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите пожалуста с регулярными выражениями! (Дмитрий) 03/08/2011 - 08:19:31
      Re: Уточнение (Дмитрий) 03/08/2011 - 08:21:30
      Re: Помогите пожалуста с регулярными выражениями! (Akina) 03/08/2011 - 09:18:40
      Re: Помогите пожалуста с регулярными выражениями! (Дмитрий) 03/08/2011 - 09:43:54
      Re: Помогите пожалуста с регулярными выражениями! (Akina) 03/08/2011 - 15:09:24

> Original message text:
> From: Дмитрий - 03/08/2011 - 08:19:31
> Subject:Помогите пожалуста с регулярными выражениями!
> -----------------
> SELECT a.`title`, COUNT(a.`title`) AS count
> FROM (SELECT id,title, sectionid, state FROM `jos_content` WHERE `sectionid`=11 AND `state`=1) AS a,
> (SELECT id,title, sectionid, state FROM `jos_content` WHERE `sectionid`=11 AND `state`=1) AS b
> WHERE a.`title`=b.`title` AND a.`id`!=b.`id`
> GROUP BY a.`title`
> LIMIT 50
>
> Запрос рабочий.Он ищет одинаковые записи по полю title.
> Однако есть заголовоки:
> 1)СИБВЕЗ
> 2)Сибвез,сеть магазинов.
> Это тоже дубли. Как мне их выловить?
> Как использовать REGEXP с алиасами?
> Буду очень благодарен любому совету.
>


From: Akina - 03/08/2011 - 15:09:24
Subject:Помогите пожалуста с регулярными выражениями!
-----------------
> Ну алгоритм есть, это:

Ну это возможно. Вместо

WHERE a.`title`=b.`title`

надо

WHERE (LEFT(a.`title`, LENGTH(b.`title`)) = b.`title`)
OR (LEFT(b.`title`, LENGTH(a.`title`)) = a.`title`)

либо

WHERE (a.`title` LIKE CONCAT(b.`title`, '%'))
OR (b.`title` LIKE CONCAT(a.`title`, '%'))

Только это будет изрядно тормозной запрос. И не зело красивый результат получится, если есть несколько "длинных" записей, например "СИБВЕЗ", "Сибвез,сеть магазинов" и "СИБВЕЗ, торговая сеть"...

Разумнее выбрать это дело в курсор с сортировкой по title и обрабатывать в процедуре или функции - при этом надо сравнивать только предыдущее с последующим.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
39322



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |