MySQL 基础教程

MySQL 高级教程

MySQL SQL 语句

MySQL 笔记

mysql 中 insert into set 的用法及优势

MySQL 笔记 MySQL 笔记


mysql 中,插入数据的 sql 有很多种形式,除了标准 sql 支持的 INSERT INTO table_name (col1, col2, ...) VALUES (...) 外,还支持 INSERT INTO table_name SET col1=... 的形式,介绍一下它的具体用法及优势。

用法

语法如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    INTO tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    SET assignment_list
    [ON DUPLICATE KEY UPDATE assignment_list]

其中,assignment_list 的是 col1=... 这种列对应值的形式,可以很清晰地看到列值的对应关系。

mysql> INSERT INTO tb_query SET query='knowledgedict', type=1;

优势

标准的 sql 插入写法,当指定表的列特别多时,VALUES 后面对应的值会特别乱,容易写错顺序。

SET 的这种方式有如下几点优势:

  1. 不许考虑列值的对应顺序,不容易写错;
  2. 容易后期扩展,主要是增加列、减少列;
  3. 易于阅读。