Можно ли разделить значения из одного текстового поля на несколько текстовых полей? - PullRequest
0 голосов
/ 07 июня 2010

У меня есть текстовое поле, в котором хранится комбинация из трех значений: «:» с разделителями. (выглядит как A: B: C).

Я бы хотел разделить эти значения на три фактических столбца в таблице, но я не уверен, что лучше всего это сделать. Я использую sqlite3, любая помощь очень ценится!

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Сначала измените схему, чтобы добавить нужные столбцы. Я полагаю, вы знаете, как это сделать.

Во-вторых, выполните запрос на обновление, который разбивает данные.

обновить mytable set column1 = ..., column2 = ..., column3 = ...;

Хитрость заключается в формулировании "..." для извлечения правильных столбцов из столбца "источник".

Скорее всего, вы могли бы что-то сделать с ltrim (), rtrim () и CASE (см. http://www.sqlite.org/lang_expr.html),), но вам может быть проще, если вы определили пользовательскую функцию, возможно, основанную на length () и подстрока ().

0 голосов
/ 07 июня 2010

Если вы используете php, это выглядит примерно так:

PHP:

$explodedStr = explode(":", $delimitedStr);

SQL:

"INSERT INTO tableName (column1, column2, column3)
 VALUES ('".$explodedStr[0]."','".$explodedStr[1]."', '".$explodedStr[2]."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...