mysql中replace函数的用法
欢迎进入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]