【问题标题】:Can I split up the values from one text field into multiple text fields?我可以将一个文本字段中的值拆分为多个文本字段吗?
【发布时间】:2010-06-07 01:08:17
【问题描述】:

我有一个文本字段,它存储三个值的组合,':' 分隔。 (看起来像 A:B:C)。

我想将这些值拆分为表中的三个实际列,但我不确定执行此操作的最佳方法。我正在使用 sqlite3,任何帮助都非常感谢!

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    首先,更改架构以添加所需的列。我假设你知道如何做到这一点。

    其次,运行拆分数据的“更新”查询。

    更新 mytable 集 column1=..., column2=..., column3=...;

    诀窍是制定“...”以从“源”列中提取正确的列。

    您很可能会使用 ltrim()、rtrim() 和 CASE(请参阅 http://www.sqlite.org/lang_expr.html),但如果您定义了一个用户定义的函数,可能会基于 length() 和 substring,您可能会更轻松()。

    【讨论】:

    • 当然,另一种方法是选择所有值,对它们运行 sed 表达式以创建更新语句,然后将输出文件作为 SQL 命令运行。从表中选择源 > 文件 sed -e "s/^([^:]*):([^:]*):([^:]*)\$/update table set column1='\\1', column2='\\2', column3='\\3' where source='\$';" 新文件sqlite3
    【解决方案2】:

    如果你使用的是 php,它会变成这样:

    PHP:

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

    SQL:

    "INSERT INTO tableName (column1, column2, column3)
     VALUES ('".$explodedStr[0]."','".$explodedStr[1]."', '".$explodedStr[2]."
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多