MySQL: выбирайте слова, так как строки, даже сом, являются "новой строкой", разделенной в одном поле - PullRequest
3 голосов
/ 19 марта 2010

У меня есть таблица с полем, где написаны слова, разделенные новыми строками. Таким образом, выборка в этом единственном поле от до строк выведет 3 строки для первой строки и 2 строки для второй строки:

Row1    designationer
        nye kolonier
        mindre byer
Row2    udsteder
        bopladser

Я хотел бы сделать выбор, который выделит все эти строки, как если бы они были строками в таблице, например:

SELECT do_the_split(field) FROM table

так что результат будет больше похож на:

Row1    designationer
Row2    nye kolonier
Row3    mindre byer
Row4    udsteder
Row5    bopladser

есть ли способ сделать это в MySQL?

BR. Андерс

ОБНОВЛЕНИЕ: ниже приведены правильные ответы, но в итоге мы сделали это полуручным способом. Я сделал это:

  1. экспорт столбца в csv
  2. Открыть файл в блокноте и убрать пинги вокруг каждой строки
  3. теперь каждое слово в новой строке
  4. сохранить как csv
  5. импорт в базу данных, где каждая строка будет новой строкой

Br. Андерс

Ответы [ 3 ]

2 голосов
/ 19 марта 2010

Вы можете использовать хранимую процедуру - , аналогичную тому, что этот человек сделал - чтобы выполнить это, по существу используя временную таблицу.

Конечно, вы могли бы выполнить это локально в своем приложении, как предложил MasterPeter.

1 голос
/ 19 марта 2010

Я столкнулся с той же проблемой, и я знаю только два способа получения нужного набора слов: хранимые процедуры (что я и сделал, хотя и с базой данных Derby) или сценарий / программа.

0 голосов
/ 19 марта 2010

Я не знаю, какие входы и выходы mySQL могли бы помочь в этом, но что мешает вам выполнить разбиение на прикладном уровне?Скажем, вы загружаете свои строки, как они есть, в Java (или PHP или что-то еще), а затем

String row = <fetch row from resultset>;
String[] individualItems = row.split("\n");

Если бы вы могли хранить такие значения в вашей БД, вы могли бы также получить их какчто.

...