欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql中replace函数的用法

程序员文章站 2022-05-23 20:26:25
...

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 #对于这样的结果只能看作是在replace中所有的数据都是字符串。(仅个人认为) #update mytable set name=replace(name,王二小,王铁柱); #该方式无法通过 #update mytable set count=replace(cou

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  #对于这样的结果只能看作是在replace中所有的数据都是字符串。(仅个人认为)

  #update mytable set name=replace(name,王二小,王铁柱); #该方式无法通过

  #update mytable set count=replace(count,'500','100');

  mysql> update mytable set count=replace(count,'500','100');

  Query OK, 3 rows affected (0.00 sec) #确实为预期结果

  Rows matched: 11 Changed: 3 Warnings: 0

  #为此,数据在replace中仅仅是字符串

  mysql> update mytable set count=replace(count,'300','150');

  Query OK, 6 rows affected (0.00 sec) #结果再次得以证明

  Rows matched: 11 Changed: 6 Warnings: 0

  ##综上,replace可以用于一个字段的多个数据替换,也可以用于不同字段的替换。

  #在mysql中replace可以在一定范围内起到insert的作用,并且语法与之相似

  #replace into mytable(name,count) values ('来福','70'),('力拓','600');

  mysql> replace into mytable(name,count) values ('来福','70'),('力拓','600');

  Query OK, 2 rows affected (0.00 sec)

  Records: 2 Duplicates: 0 Warnings: 0

  #如果数据库中有类似数据又该如何呢?

  replace into mytable(name,count) values ('来福','70');

  mysql> replace into mytable(name,count) values ('来福','70');

  Query OK, 1 row affected (0.00 sec)

  #这里我们查看一下该表的索引,看来索引为默认的ID.

  mysql> show index from mytable;

  +---------+------------+----------+--------------+-------------+-----------+----

  ---------+----------+--------+------+------------+---------+

  | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Car

  dinality | Sub_part | Packed | Null | Index_type | Comment |

  +---------+------------+----------+--------------+-------------+-----------+----

  ---------+----------+--------+------+------------+---------+

  | mytable | 0 | PRIMARY | 1 | id | A |

  14 | NULL | NULL | | BTREE | |

  +---------+------------+----------+--------------+-------------+-----------+----

  ---------+----------+--------+------+------------+---------+

  1 row in set (0.00 sec)

  #根据文档介绍,如果只有一个索引,那么replace相当于insert.

  ##记得我曾经创建了两个表,现在我们切换到另一个数据较少的表mytab上进行操作演示:

  mysql> show tables;

  +----------------+

  | Tables_in_mydb |

  +----------------+

  | mytab |

  | mytable |

  +----------------+

  2 rows in set (0.00 sec)

  #其默认的索引为id

  mysql> show index from mytab;

  +-------+------------+----------+--------------+-------------+-----------+------

  -------+----------+--------+------+------------+---------+

  | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardi

  nality | Sub_part | Packed | Null | Index_type | Comment |

  +-------+------------+----------+--------------+-------------+-----------+------

  -------+----------+--------+------+------------+---------+

  | mytab | 0 | PRIMARY | 1 | id | A |

  3 | NULL | NULL | | BTREE | |

  +-------+------------+----------+--------------+-------------+-----------+------

  -------+----------+--------+------+------------+---------+

  1 row in set (0.00 sec)

  #现在需要向其中添加索引(在这里遇到麻烦了,看来我对于建立索引不怎么会啊,惭愧惭愧)。

  #尝试建立了多个索引都是失败,暂时写到这里…

  写这些并非上班不务正业,而是公司具体任务被安排到下周,接下来该忙了。

[1] [2]

mysql中replace函数的用法