成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL實(shí)現(xiàn)replace函數(shù)的幾種實(shí)用場(chǎng)景

瀏覽:7日期:2023-10-06 08:59:48
REPLACE語法

REPLACE(String,from_str,to_str)

即:將String中所有出現(xiàn)的from_str替換為to_str,這里的from_str不支持正則匹配。

操作實(shí)例

測(cè)試表數(shù)據(jù)如下:

mysql> select * from `LOL`;+----+----------------+--------------+-------+| id | hero_title | hero_name | price |+----+----------------+--------------+-------+| 1 | 刀鋒之影 | 泰隆 | 6300 || 2 | 迅捷斥候 | 提莫 | 6300 || 3 | 光輝女郎AA | 拉克絲 | 1350 || 4 | 發(fā)條A魔靈A | 奧莉安娜 | 6300 || 5 | 至高之拳 | 李青 | 6300 || 6 | 無極劍圣 | 易 | 450 || 7 | 疾風(fēng)劍豪 | 亞索 | 6300 |+----+----------------+--------------+-------+7 rows in set (0.00 sec)使用場(chǎng)景1 ? (Query語句):

需求:把'hero_title'字段中所有的'之'換成' - '來展示,SQL如下:

SELECT REPLACE(hero_title,’之’,’ - ’)as repl_title,hero_name,price from LOL;mysql> SELECT REPLACE(hero_title,’之’,’ - ’) as repl_title,hero_name,price from `LOL`;+----------------+--------------+-------+| repl_title | hero_name | price |+----------------+--------------+-------+| 刀鋒 - 影 | 泰隆 | 6300 || 迅捷斥候 | 提莫 | 6300 || 光輝女郎AA | 拉克絲 | 1350 || 發(fā)條A魔靈A | 奧莉安娜 | 6300 || 至高 - 拳 | 李青 | 6300 || 無極劍圣 | 易 | 450 || 疾風(fēng)劍豪 | 亞索 | 6300 |+----------------+--------------+-------+7 rows in set (0.00 sec)使用場(chǎng)景2 ? (update語句):

需求:把'hero_title'字段中所有的'A'去掉,SQL如下:

UPDATE LOL SET hero_title=REPLACE(hero_title,‘A’,’’);

mysql> UPDATE `LOL` SET hero_title=REPLACE(hero_title,’A’,’’);Query OK, 2 rows affected (0.05 sec)Rows matched: 7 Changed: 2 Warnings: 0

-- 去掉后在查詢:+----+--------------+--------------+-------+| id | hero_title | hero_name | price |+----+--------------+--------------+-------+| 1 | 刀鋒之影 | 泰隆 | 6300 || 2 | 迅捷斥候 | 提莫 | 6300 || 3 | 光輝女郎 | 拉克絲 | 1350 || 4 | 發(fā)條魔靈 | 奧莉安娜 | 6300 || 5 | 至高之拳 | 李青 | 6300 || 6 | 無極劍圣 | 易 | 450 || 7 | 疾風(fēng)劍豪 | 亞索 | 6300 |+----+--------------+--------------+-------+7 rows in set (0.00 sec)使用場(chǎng)景3 ? (插入或替換:REPLACE INTO)

如果我們想插入一條新記錄(INSERT),但如果記錄已經(jīng)存在,就先刪除原記錄,再插入新記錄。

需求場(chǎng)景:

這張表存的每個(gè)客戶最近一次交易訂單信息,要求保證單個(gè)用戶數(shù)據(jù)不重復(fù)錄入,且執(zhí)行效率最高,與數(shù)據(jù)庫交互最少,支撐數(shù)據(jù)庫的高可用。此時(shí),可以使用'REPLACE INTO'語句,這樣就不必先查詢,再?zèng)Q定是否先刪除再插入。

'REPLACE INTO'語句是基于唯一索引或主鍵來判斷唯一(是否存在)的。 'REPLACE INTO'語句是基于唯一索引或主鍵來判斷唯一(是否存在)的。 'REPLACE INTO'語句是基于唯一索引或主鍵來判斷唯一(是否存在)的。

注意事項(xiàng):如下SQL所示,需要在username字段上建立唯一索引(Unique),transId設(shè)置自增即可。

-- 20點(diǎn)充值REPLACE INTO last_transaction (transId,username,amount,trans_time,remark) VALUES (null, ’chenhaha’, 30, ’2020-06-11 20:00:20’, ’會(huì)員充值’); -- 21點(diǎn)買皮膚REPLACE INTO last_transaction (transId,username,amount,trans_time,remark) VALUES (null, ’chenhaha’, 100, ’2020-06-11 21:00:00’, ’購買盲僧至高之拳皮膚’);

若username=’chenhaha’的記錄不存在,REPLACE語句將插入新記錄(首次充值),否則,當(dāng)前username=’chenhaha’的記錄將被刪除,然后再插入新記錄。

id不要給具體值,不然會(huì)影響SQL執(zhí)行,業(yè)務(wù)有特殊需求除外。

到此這篇關(guān)于MySQL實(shí)現(xiàn)replace函數(shù)的幾種實(shí)用場(chǎng)景的文章就介紹到這了,更多相關(guān)MySQL replace實(shí)用場(chǎng)景內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章: