Mysql SQL中的字符串操作

Mysql SQL中的字符串操作,mysql,regex,Mysql,Regex,我有一个varchar表格列,其中包含此约定的信息: 型号\零件名称 例: 我想将此列拆分为模型名称和零件名称。 我该怎么做呢?您可以创建一个视图并使用substr(model\u parts-name,instr(model\u parts-name,“'''))函数列您可以使用instr查找索引并使用左/右获取字符串的一部分 CREATE TABLE tab(name VARCHAR(100)); INSERT INTO tab VALUES ('A85_BATTERY CONNECTOR

我有一个varchar表格列,其中包含此约定的信息:

型号\零件名称 例:

我想将此列拆分为模型名称和零件名称。
我该怎么做呢?

您可以创建一个视图并使用
substr(model\u parts-name,instr(model\u parts-name,“'''))
函数列

您可以使用
instr
查找
索引并使用
左/右
获取字符串的一部分

CREATE TABLE tab(name VARCHAR(100));

INSERT INTO tab
VALUES ('A85_BATTERY CONNECTOR'),('A85_CAMERA-BACK'), ('C101V_UPPER SHELL');

SELECT 
  name, 
  LEFT(name, INSTR(name, '_') - 1) AS model_name,
  RIGHT(name, LENGTH(name) - INSTR(name, '_')) AS part_name
FROM tab

始终不是连字符??只有下划线存在以分隔模型名称和零件名称没有子字符串功能将无法工作。。。因为我必须从每个字符串中找到下划线(u)。。把它一分为二..你可以很容易地使用它,让我提供完整的解决方案。
CREATE TABLE tab(name VARCHAR(100));

INSERT INTO tab
VALUES ('A85_BATTERY CONNECTOR'),('A85_CAMERA-BACK'), ('C101V_UPPER SHELL');

SELECT 
  name, 
  LEFT(name, INSTR(name, '_') - 1) AS model_name,
  RIGHT(name, LENGTH(name) - INSTR(name, '_')) AS part_name
FROM tab