mysql 切割字段并作为外键关联其他表
时间: 2023-07-04 22:18:59 浏览: 120
mySql主外键关联例子
5星 · 资源好评率100%
在 MySQL 中,可以使用 SUBSTRING() 函数来切割字符串,并将切割出来的字段作为外键关联其他表。下面是一个示例:
假设有两个表,一个是 orders 表,包含订单信息;另一个是 customers 表,包含客户信息。orders 表中有一个字段 customer_info 存储客户信息,格式为 "姓名-电话号码"。现在需要将 customer_info 字段切割成姓名和电话号码两个字段,并将姓名作为 orders 表的外键关联 customers 表。
首先,在 customers 表中创建一个自增的 id 字段作为主键:
```
CREATE TABLE customers (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50),
phone VARCHAR(20),
PRIMARY KEY (id)
);
```
然后,在 orders 表中添加一个外键字段 customer_id,用于关联 customers 表的主键 id:
```
ALTER TABLE orders ADD COLUMN customer_id INT;
```
接着,使用 SUBSTRING() 函数将 customer_info 字段切割成姓名和电话号码两个字段,并将姓名插入 customers 表中:
```
INSERT INTO customers (name, phone)
SELECT SUBSTRING(customer_info, 1, INSTR(customer_info, '-')-1),
SUBSTRING(customer_info, INSTR(customer_info, '-')+1)
FROM orders;
```
最后,使用 UPDATE 和 INNER JOIN 语句将 orders 表中的 customer_id 字段更新为 customers 表中对应的 id 值:
```
UPDATE orders o
INNER JOIN customers c ON SUBSTRING(o.customer_info, 1, INSTR(o.customer_info, '-')-1) = c.name
SET o.customer_id = c.id;
```
这样就完成了将切割出来的字段作为外键关联其他表的操作。
阅读全文