欧美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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql無法啟動服務(wù)及其他問題總結(jié)

    mysql無法啟動服務(wù)及其他問題總結(jié)

    MySQL無法啟動,可能有多種原因?qū)е?本文主要介紹了mysql無法啟動服務(wù)及其他問題總結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 導(dǎo)致MySQL索引失效的一些常見寫法總結(jié)

    導(dǎo)致MySQL索引失效的一些常見寫法總結(jié)

    這篇文章主要給大家介紹了關(guān)于導(dǎo)致MySQL索引失效的一些常見寫法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • mysql數(shù)據(jù)庫備份命令分享(mysql壓縮數(shù)據(jù)庫備份)

    mysql數(shù)據(jù)庫備份命令分享(mysql壓縮數(shù)據(jù)庫備份)

    這篇文章主要介紹了mysql數(shù)據(jù)庫備份常用語句,包括數(shù)據(jù)庫壓縮備份、備份多個MySQL數(shù)據(jù)庫、備份多個MySQL數(shù)據(jù)庫、將數(shù)據(jù)庫轉(zhuǎn)移到新服務(wù)器等語句
    2014-01-01
  • MySQL數(shù)據(jù)庫怎么正確查詢字符串長度

    MySQL數(shù)據(jù)庫怎么正確查詢字符串長度

    MySQL中字符串長度一般指數(shù)據(jù)庫表中一個字段或列中存儲的字符串的最大長度,有時我們需要測量字符串長度,來保證表結(jié)構(gòu)及數(shù)據(jù)庫性能穩(wěn)定,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫怎么正確查詢字符串長度的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • linux mysql5.5升級至mysql5.7的步驟與踩到的坑

    linux mysql5.5升級至mysql5.7的步驟與踩到的坑

    這篇文章主要介紹了linux mysql5.5升級至mysql5.7的詳細步驟,后面腳本之家小編為大家整理了多個補充,大家可以參考一下
    2021-01-01
  • 淺談mysql join底層原理

    淺談mysql join底層原理

    本文文章主要介紹了淺談mysql join底層原理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MySQL服務(wù)無法啟動:failed to restart mysql.service: unit not found

    MySQL服務(wù)無法啟動:failed to restart mysql.service:&

    在系統(tǒng)更新或配置變更后,MySQL服務(wù)可能無法啟動,本文提供解決MySQL服務(wù)啟動失敗的方法,包括檢查和更新服務(wù)單元文件,主要步驟包括檢查服務(wù)文件存在與否、備份舊的服務(wù)文件、使用最新的服務(wù)文件重啟MySQL服務(wù)等,確保服務(wù)能正常運行,感興趣的可以了解一下
    2024-10-10
  • 深入MYSQL字符數(shù)字轉(zhuǎn)換的詳解

    深入MYSQL字符數(shù)字轉(zhuǎn)換的詳解

    本篇文章是對MYSQL中的字符數(shù)字轉(zhuǎn)換進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 詳解MySQL雙活同步復(fù)制四種解決方案

    詳解MySQL雙活同步復(fù)制四種解決方案

    這篇文章主要介紹了MySQL 雙活同步復(fù)制四種方案,主從復(fù)制分成三步,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • 高效數(shù)據(jù)流轉(zhuǎn):Mycat分庫分表與GreatSQL實時同步

    高效數(shù)據(jù)流轉(zhuǎn):Mycat分庫分表與GreatSQL實時同步

    聚焦數(shù)據(jù)庫擴容與實時數(shù)據(jù)同步,探索MyCat分庫分表與GreatSQL的強大結(jié)合!想在大規(guī)模數(shù)據(jù)處理中游刃有余?本指南將帶你輕松掌握MyCat的分布式解決方案和GreatSQL的實時同步機制,讓高效、穩(wěn)定的數(shù)據(jù)庫管理觸手可及,一起揭開高并發(fā)環(huán)境下數(shù)據(jù)庫優(yōu)化的神秘面紗吧!
    2024-01-01

最新評論