mysql中replace函式的用法
##-----MySQL資料替換即replace的運用-----##
#這裡主要介紹一些關於replace函式的用法。關於研究這個主要是發現replace功能很強大
#對於遮蔽關鍵字很有用處。
#現在繼續在以前的資料表中進行相關操作。
示例資料表:
mysql> select * from mytable;
+----+--------+-------+
| id | name | count |
+----+--------+-------+
| 1 | 張三 | 1000 |
| 2 | 李四 | 500 |
| 3 | 王老虎 | 100 |
| 4 | 趙大 | 1000 |
| 5 | 王二小 | 500 |
| 6 | 三亞子 | 100 |
| 7 | ?阿瓊 | 1000 |
| 8 | 秋水蝦 | 500 |
| 22 | 害人精 | 100 |
+----+--------+-------+
9 rows in set (0.00 sec)
#這裡有9條原始資料,下面用replace進行資料的替換:
#update mytable set name=replace(name,'害人精','馬屁精');
mysql> update mytable set name=replace(name,'張三','阿瓊');
Query OK, 1 row affected (0.06 sec)
Rows matched: 9 Changed: 1 Warnings: 0
+----+--------+-------+
| id | name | count |
+----+--------+-------+
| 1 | 阿瓊 | 1000 |
| 2 | 李四 | 500 |
#為了更加清晰的瞭解replace替換的方式,這裡我們讓其替換多個資料:
#update mytable set name=replace(name,'三','大炮');
#由於資料被更改過,裡面只有一個’三‘,這裡再新增幾條資料:
#insert into mytable(name,count) values ('三毛子','200');
#insert into mytable(name,count) values ('張三胖','250');
mysql> insert into mytable(name,count) values ('三毛子','200');
Query OK, 1 row affected (0.00 sec)
mysql> insert into mytable(name,count) values ('張三胖','250');
Query OK, 1 row affected (0.00 sec)
#現在進行替換:
mysql> update mytable set name=replace(name,'三','大炮');
Query OK, 3 rows affected (0.00 sec) #這裡顯示改變了三條資料,找資料表中有3天帶'三'資料
Rows matched: 11 Changed: 3 Warnings: 0
#結果:
| 6 | 大炮亞子 | 100 |
| 7 | ?阿瓊 | 1000 |
| 8 | 秋水蝦 | 500 |
| 22 | 馬屁精 | 100 |
| 23 | 大炮毛子 | 200 |
| 24 | 張大炮胖 | 250 |
+----+----------+-------+
11 rows in set (0.00 sec)
##多條資料替換
#一開始以為這是個錯誤的sql語句:
#update mytable set name=replace(name,'馬屁精','小馬哥'),name=replace(name,'小李子','李子');
mysql> update mytable set name=replace(name,'馬屁精','小馬哥'),name=replace(name
,'小李子','李子');
Query OK, 2 rows affected (0.00 sec)
Rows matched: 11 Changed: 2 Warnings: 0
#從結果來看,如果進行多組資料的替換可以使用上面的方式。
#接下來進行各個欄位的替換:
#update mytable set name=replace(name,'秋水蝦','吐絲草'),count=replace(count,100,300);
mysql> update mytable set name=replace(name,'秋水蝦','吐絲草'),count=replace(cou
nt,100,300);
Query OK, 7 rows affected (0.00 sec) #影響了7個結果,這確實出乎意料,按照我的預測應該
Rows matched: 11 Changed: 7 Warnings: 0 #為1+3=4個影響結果
#下面我們看看資料是如何變化的:
+----+----------+-------+
| id | name | count |
+----+----------+-------+
| 1 | 阿瓊 | 3000 | #1000變為3000也就是說將前三位改變了。
| 2 | 李子 | 500 |
| 3 | 王老虎 | 300 | #100變為300,正常變化
| 4 | 趙大 | 3000 |
| 5 | 王二小 | 500 |
| 6 | 大炮亞子 | 300 |
| 7 | ?阿瓊 | 3000 |
| 8 | 吐絲草 | 500 |
| 22 | 小馬哥 | 300 |
| 23 | 大炮毛子 | 200 |
| 24 | 張大炮胖 | 250 |
+----+----------+-------+
11 rows in set (0.00 sec)
#對於這樣的結果只能看作是在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)
#現在需要向其中新增索引(在這裡遇到麻煩了,看來我對於建立索引不怎麼會啊,慚愧慚愧)。
#嘗試建立了多個索引都是失敗,暫時寫到這裡。。。。
寫這些並非上班不務正業,而是公司具體任務被安排到下週,接下來該忙了。
相關文章
- MYSQL中replace into的用法MySql
- mySQL中replace的用法MySql
- C++ replace() 函式用法C++函式
- javascript的replace()函式用法詳解JavaScript函式
- 淺析MySQL replace into 的用法MySql
- replace函式函式
- Oracle 中 replace函式和translate函式比較Oracle函式
- SQL中的替換函式replace()使用SQL函式
- MySQL 5.7 REPLACE語句的用法MySql
- PHP中preg_replace函式解析PHP函式
- mysql replace into用法詳細說明MySql
- str_replace()函式函式
- Mysql替換欄位中指定字元(replace 函式)MySql字元函式
- MySQL5.6中的常用函式詳細用法介紹MySql函式
- MySQL CAST與CONVERT 函式的用法MySqlAST函式
- 深入瞭解下replace函式函式
- sql CHARINDEX,REPLACE函式使用SQLIndex函式
- oracle REPLACE 函式 介紹Oracle函式
- replace函式一用函式
- C++中函式呼叫的用法C++函式
- python中zip()函式的用法Python函式
- Matlab中erf函式的用法Matlab函式
- Java中Split函式的用法技巧Java函式
- matlab中sort函式的用法Matlab函式
- Python中的split()函式的用法Python函式
- MySQL視窗函式用法總結MySql函式
- replace()第一個引數是正規表示式第二個是函式用法函式
- Python 中filter函式用法PythonFilter函式
- Teradata自定義函式Replace函式
- Python 中的map、reduce函式用法Python函式
- mysql儲存過程procedure、函式function的用法MySql儲存過程函式Function
- mysql中的時間函式MySql函式
- (4)mysql 中的常用函式MySql函式
- ascii函式和substr函式的用法ASCII函式
- GetModuleFileName函式的用法函式
- createStyleSheet()函式的用法函式
- qsort函式的用法函式
- COALESCE函式的用法。函式