mySQL:从另一个VALUE加载一个CHAR VALUE作为子串

时间:2014-08-11 19:40:02

标签: mysql sql

SQL新手问题:

我有一个子表'输出',它有两个值:

CREATE TABLE Outputs ( 
sub_id char(13) NOT NULL, 
output varchar(255), 
output_id smallint UNSIGNED NOT NULL AUTO_INCREMENT,  
PRIMARY KEY (output_id)
);

输出是一个路径字符串,例如:

/full/path/to/output/client_xxx/client_xxx_final_output.txt

我想从文件加载数据,或手动插入练习。

sub_id是' client_XXX'这是路径的一部分,并将永远 是这样的。所以我想从路径中获取sub_id。

我在示例中看到了用于子句的SET子句和用户参数,但我迷路了 试图获取子字符串(使用正确的函数?)并获取所有 对于初学者来说,正确顺序的SQL命令很难。

干杯!

编辑:

我不太清楚我的最终目标是什么。

我想做这样的事情:

INSERT INTO TABLE Outputs (sub_id, output) VALUES
% SET @path_string = foobar, then substring command

我很抱歉,我仍然对SQL语法不知所措。

1 个答案:

答案 0 :(得分:0)

如果它始终是倒数第二个元素:

select substring_index(substring_index(output, '/', -2), '/', 1)

如果只是以"客户"在某个地方,你也可以使用字符串操作。以上更简单,所以我将从那里开始。

编辑:

如果数据已经在表格中,那么您需要update

update outputs o
    set sub_id = substring_index(substring_index(output, '/', -2), '/', 1);