|
MySQL.RU - Webboard
Вернуться
Как достать строку из текста? (X-Ander) 29/05/2003 - 13:22:26
Re: Как достать строку из текста? (Валентин) 29/05/2003 - 16:51:02
Re: Проясняю цель запроса (X-Ander) 29/05/2003 - 18:07:13
Re: Проясняю цель запроса (walrus) 29/05/2003 - 18:35:34
Re: Проясняю цель запроса (Валентин) 29/05/2003 - 19:22:38
Re: Приму к сведению (X-Ander) 29/05/2003 - 19:50:54
Re: Да, но вот кстати... (X-Ander) 29/05/2003 - 19:53:15
Re: Приму к сведению (Валентин) 29/05/2003 - 20:01:20
Re: Да, но вот кстати... (Валентин) 29/05/2003 - 20:04:58
Re: Большое спасибо... (X-Ander) 29/05/2003 - 20:21:38
Re: Большое спасибо... (walrus) 30/05/2003 - 02:25:28
> Original message text:
> From: X-Ander - 29/05/2003 - 13:22:26
> Subject:Как достать строку из текста?
> -----------------
> Подскажите, пожалуйста, как красиво записать следующее дело:
>
> В таблице есть поле, содержащее текст, состоящий из нескольких строк (разделённых "\n"). Нужно вытащить из него строку с заданным номером.
>
> Некрасивое решение выглядит, например, так:
>
> select
> SUBSTRING_INDEX(
> SUBSTRING_INDEX(
> <такое-то поле>, "\n", <такой-то номер строки>
> ),
> "\n", -1
> )
> from и т. д.
>
> Это работает, но нельзя ли записать попроще?
>
>
From: X-Ander - 29/05/2003 - 18:07:13
Subject:Проясняю цель запроса
-----------------
Да, собственно, никаких деревьев я не строю. (Вернее строю, но не в этом месте и не такими средствами.) А вся эта петрушка с составными строками преследует другую цель:
В таблице хранится уйма информации (порядка нескольких десятков тысях записей) о всякой всячине. Природа этой всячины не имеет значения и может меняться, важно только, что каждый предмет имеет набор текстовых свойств (каждое свойство - одна строка текста). Набор этих свойств тоже заранее не оговорен и, вообще говоря, может различаться для разных предметов. При этом могут существовать классы предметов с более или менее единым набором свойств, но даже внутри таких классов возможны исключения. Предполагается, что общее количество различных свойств невелико - порядка нескольких десятков. Вот такая вот каша :) По этой таблице нужно сделать поиск по этим текстовым свойствам, причём как по всем, так и по конкретным. Для поиска по всем свойствам требуется максимально возможная скорость. Поиск - только на подстроку.
Предлагается такое решение:
1. Существующие свойства нумеруем и запоминаем номера.
2. Строим таблицу для предметов. Все свойства предмета записываем в одно поле типа text, разделяя их символами новой строки. Свойства записываем строго в порядке, введённом на шаге 1. Отсутствующие свойства записываем как пустые строки. Несколько пустых строк в конце заменяем на одну.
3. Теперь поиск по всем свойствам делается легко и быстро (это требуется!), а вот по отдельным встаёт задача заявленная в самом начале, то есть значение свойства нужно извлечь и обработать.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
8842
|
|