欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql通過INSERT IGNORE INTO插入拼音字符無效問題及解決

 更新時間:2022年08月25日 10:40:31   作者:鄭宇棟  
這篇文章主要介紹了mysql通過INSERT IGNORE INTO插入拼音字符無效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

前言

在做一個批量導(dǎo)入關(guān)鍵詞的功能時,發(fā)現(xiàn)關(guān)鍵詞如果帶有像é這樣的拼音字符時,存入數(shù)據(jù)庫時會識別為e,造成部分關(guān)鍵詞沒有被導(dǎo)入,且與原來部分關(guān)鍵詞可能重復(fù)的情況,因此記錄下來避免以后再踩坑。

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 

一、準(zhǔn)備工作

準(zhǔn)備一份批量導(dǎo)入關(guān)鍵詞excel,其中包含2個關(guān)鍵詞

1.pokemon

2.pokémon

注意:這2個關(guān)鍵詞中一個是普通的e,一個是帶音節(jié)的é

準(zhǔn)備數(shù)據(jù)庫表sql腳本

-- 導(dǎo)入關(guān)鍵詞表
CREATE TABLE `keyword_lexicon` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `keyword` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '搜索關(guān)鍵詞',
  PRIMARY KEY ("id"),
  UNIQUE KEY "idx_keyword" ("keyword") USING BTREE COMMENT '關(guān)鍵詞'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='導(dǎo)入關(guān)鍵詞表';

二、場景復(fù)現(xiàn)

簡單寫一個導(dǎo)入接口,代碼就不附上了,需要注意的是導(dǎo)入sql用的是INSERT IGNORE INTO的方式,如果表中已經(jīng)有該關(guān)鍵詞了則不會寫入表中。(keyword字段設(shè)為唯一索引)

導(dǎo)入sql例子如下

INSERT IGNORE INTO keyword_lexicon (`keyword`) VALUES ('pokemon'),('pokémon')

調(diào)接口完成導(dǎo)入后,查看數(shù)據(jù)庫表,發(fā)現(xiàn)只有一條pokemon的數(shù)據(jù)。

三、解決問題

查看表結(jié)構(gòu)發(fā)現(xiàn),keyword字段的排序規(guī)則為

  • utf8mb4_general_ci

這種排序規(guī)則在識別é這種帶有音節(jié)的字符時,會識別為e,導(dǎo)致2個關(guān)鍵詞在通過INSERT IGNORE INTO導(dǎo)入后只會有一條記錄,只要將排序規(guī)則改為

  • utf8mb4_bin

然后再重新導(dǎo)入,查看結(jié)果可發(fā)現(xiàn)2條數(shù)據(jù)都已經(jīng)插入表中,問題解決。

總結(jié)

  • utf8mb4_bin是區(qū)分大小寫的,也區(qū)分e和é這類字符的
  • utf8_genera_ci是不區(qū)分大小寫的,也不區(qū)分e和é這類字符

注:utf8_general_cs是區(qū)分大小寫的,但不區(qū)分e和é這類字符

如果需要區(qū)分帶有音節(jié)的字符,又不想要區(qū)分大小寫,可在sql查詢對應(yīng)字段時用LOWER()函數(shù)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解MySQL的Seconds_Behind_Master

    詳解MySQL的Seconds_Behind_Master

    對于mysql主備實(shí)例,seconds_behind_master是衡量master與slave之間延時的一個重要參數(shù)。通過在slave上執(zhí)行"show slave status;"可以獲取seconds_behind_master的值。
    2021-05-05
  • 使用MySQL唯一索引的注意事項(xiàng)及說明

    使用MySQL唯一索引的注意事項(xiàng)及說明

    這篇文章主要介紹了使用MySQL唯一索引的注意事項(xiàng)及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Mysql中一千萬條數(shù)據(jù)怎么快速查詢

    Mysql中一千萬條數(shù)據(jù)怎么快速查詢

    很多人在使用Mysql時沒有考慮到優(yōu)化問題,如果遇到上千萬數(shù)據(jù)量的表,查詢上千萬數(shù)據(jù)量的時候會發(fā)生什么問題,本文就來介紹一下如何快速查詢一千萬條數(shù)據(jù),感興趣的可以了解一下
    2021-12-12
  • mysql設(shè)置值timestamp獲取當(dāng)前時間并自動更新方式

    mysql設(shè)置值timestamp獲取當(dāng)前時間并自動更新方式

    這篇文章主要介紹了mysql設(shè)置值timestamp獲取當(dāng)前時間并自動更新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 關(guān)于MySQL的ORDER BY排序詳解

    關(guān)于MySQL的ORDER BY排序詳解

    這篇文章主要介紹了關(guān)于MySQL的ORDER BY排序詳解,如果沒有使用排序操作,默認(rèn)情況下查詢返回的數(shù)據(jù)是按照添加數(shù)據(jù)的順序顯示的,需要的朋友可以參考下
    2023-05-05
  • golang實(shí)現(xiàn)mysql數(shù)據(jù)庫備份的操作方法

    golang實(shí)現(xiàn)mysql數(shù)據(jù)庫備份的操作方法

    這篇文章主要介紹了golang實(shí)現(xiàn)mysql數(shù)據(jù)庫備份的操作方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹

    MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹

    今天小編就為大家分享一篇關(guān)于MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 修改MySQL的數(shù)據(jù)庫引擎為INNODB的方法

    修改MySQL的數(shù)據(jù)庫引擎為INNODB的方法

    本文主要介紹了修改MySQL的數(shù)據(jù)庫引擎為INNODB的方法,希望能對您有所幫助。
    2015-09-09
  • MySQL視圖的概念、創(chuàng)建、查看、刪除和修改詳解

    MySQL視圖的概念、創(chuàng)建、查看、刪除和修改詳解

    視圖是指計(jì)算機(jī)數(shù)據(jù)庫中的視圖,是一個虛擬表,其內(nèi)容由查詢定義,下面這篇文章主要給大家介紹了關(guān)于MySQL視圖的概念、創(chuàng)建、查看、刪除和修改的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 關(guān)于避免MySQL替換邏輯SQL的坑爹操作詳解

    關(guān)于避免MySQL替換邏輯SQL的坑爹操作詳解

    這篇文章主要給大家介紹了關(guān)于避免MySQL替換邏輯SQL的坑爹操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03

最新評論