最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2023年06月05日 09:20:29   作者:midasism  
MySQL中字符串長度一般指數(shù)據(jù)庫表中一個(gè)字段或列中存儲(chǔ)的字符串的最大長度,有時(shí)我們需要測量字符串長度,來保證表結(jié)構(gòu)及數(shù)據(jù)庫性能穩(wěn)定,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫怎么正確查詢字符串長度的相關(guān)資料,需要的朋友可以參考下

前言

筆者最近有一個(gè)需求,需要將一段文字插入到備注字段remark前面。

由于擔(dān)心插入后超過字段長度的限制,所以需要統(tǒng)計(jì)線上數(shù)據(jù),根據(jù)長度倒序查詢remark最長的一批數(shù)據(jù)看看長度。

剛開始百度了一下 MySQL如何查看字段長度,看到了length(),于是就寫了這條sql:

select length(remark) from t_card order by length(remark) desc limit 10;

這個(gè)字段類型是varchar(512),而查出來的10條數(shù)據(jù)基本都大于512,給我整懵了,當(dāng)時(shí)就懷疑這個(gè)函數(shù)返回的不是字符數(shù)量,于是決定探究一下MySQL如何獲取字符串長度。

官方文檔

既然網(wǎng)上答案參差不齊,不如就去找找權(quán)威的官方文檔。

進(jìn)入MySQL文檔首頁 https://dev.mysql.com/doc/ ,選擇下方的參考手冊,根據(jù)版本筆者選擇了MySQL 5.7 Reference Manual

進(jìn)入手冊后,因?yàn)槲覀円樵冏址暮瘮?shù),所以左側(cè)目錄選擇String Functions and Operators。

跳轉(zhuǎn)后可以看到一個(gè)函數(shù)表格,包括了接近60個(gè)字符串函數(shù),我們需要查詢字符串長度的函數(shù),使用CTRL + F查找關(guān)鍵詞length,大致篩選出以下5個(gè)函數(shù):

函數(shù)名解釋原文翻譯
BIT_LENGTH()Return length of argument in bits返回參數(shù)的bit數(shù)
CHAR_LENGTH()Return number of characters in argument返回參數(shù)中的字符數(shù)
CHARACTER_LENGTH()Synonym for CHAR_LENGTH()CHAR_LENGTH()的同義詞
LENGTH()Return the length of a string in bytes返回字符串的長度(以字節(jié)為單位)
OCTET_LENGTH()Synonym for LENGTH()LENGTH()的同義詞

我們可以看到這些函數(shù)返回值的單位有bit、字節(jié)、字符數(shù),弄清楚單位之間的轉(zhuǎn)換關(guān)系就能更好的理解查詢結(jié)果的含義。
我們知道字節(jié)是計(jì)算機(jī)最小的存儲(chǔ)單位,1字節(jié)等于8 bit,那么存儲(chǔ)1個(gè)字符需要用到多少字節(jié)呢?這個(gè)和使用的編碼集有關(guān),查詢手冊https://dev.mysql.com/doc/refman/5.7/en/charset-unicode.html,以我們最常用的UTF-8為例:

  • 字母、數(shù)字和標(biāo)點(diǎn)符號(hào):1字節(jié)
  • 大多數(shù)歐洲和中東文字:2字節(jié)
  • 韓語、中文和日語文字:3字節(jié)或4字節(jié)

看到這里,最開始的疑惑就能解開了,varchar設(shè)置的是字符數(shù)量,而筆者sql中使用的是LENGTH(),查詢的是字符串的字節(jié)數(shù),而備注基本都是中文,結(jié)果就大概是字符數(shù)的兩到三倍。

結(jié)論

筆者的核心需求是獲取字符串長度,所以這里應(yīng)該使用CHAR_LENGTH() 或者同義函數(shù)CHARACTER_LENGTH()。

附:MySQL SELECT語句查詢字符串長度大于、小于或等于指定值

在MySQL中查詢字符串長度使用length關(guān)鍵字,具體用法如下:

查詢某字段長度大于10的記錄:

select * from tablename  where length(字段名)>10

查詢某字段長度小于或等于5的記錄:

select * from tablename  where length(字段名) <= 5

后語

本文通過查閱官方文檔解決一個(gè)簡單的MySQL問題,旨在記錄和鞭策自身建立一種健康的學(xué)習(xí)方式,主動(dòng)探究問題,而不只是簡單地獲取他人的解決方案。

到此這篇關(guān)于MySQL數(shù)據(jù)庫怎么正確查詢字符串長度的文章就介紹到這了,更多相關(guān)MySQL查詢字符串長度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql創(chuàng)建函數(shù)出現(xiàn)1418錯(cuò)誤的解決辦法

    mysql創(chuàng)建函數(shù)出現(xiàn)1418錯(cuò)誤的解決辦法

    本篇文章是對在Mysql中創(chuàng)建函數(shù)報(bào)“ERROR 1418”的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySql數(shù)據(jù)庫單表查詢與多表連接查詢效率對比

    MySql數(shù)據(jù)庫單表查詢與多表連接查詢效率對比

    在遇到數(shù)據(jù)之間的聯(lián)系很復(fù)雜,建表就很糾結(jié),到底該怎么去處理這些復(fù)雜的數(shù)據(jù)呢,是單表查詢,然后在業(yè)務(wù)層去處理數(shù)據(jù)間的關(guān)系,還是直接通過多表連接查詢來處理數(shù)據(jù)關(guān)系呢
    2021-09-09
  • Mysql分片,大數(shù)據(jù)量時(shí)擴(kuò)容解決方案

    Mysql分片,大數(shù)據(jù)量時(shí)擴(kuò)容解決方案

    這篇文章主要介紹了Mysql分片,大數(shù)據(jù)量時(shí)擴(kuò)容解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 淺析centos 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar

    淺析centos 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar

    這篇文章主要介紹了centos 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar的相關(guān)知識(shí),需要的朋友可以參考下
    2020-01-01
  • Mysqli基礎(chǔ)知識(shí)

    Mysqli基礎(chǔ)知識(shí)

    本文給大家講述的是Mysqli的基礎(chǔ)知識(shí),非常的淺顯易懂,有需要的小伙伴就可以參考下。
    2015-07-07
  • mysql截取的字符串函數(shù)substring_index的用法

    mysql截取的字符串函數(shù)substring_index的用法

    這篇文章主要介紹了mysql截取的字符串函數(shù)substring_index的用法,需要的朋友可以參考下
    2014-08-08
  • MySQL庫與表的DDL核心操作實(shí)戰(zhàn)案例

    MySQL庫與表的DDL核心操作實(shí)戰(zhàn)案例

    本文詳細(xì)介紹了MySQL數(shù)據(jù)庫和表的創(chuàng)建、修改、備份、刪除等操作,涵蓋了字符集選擇、表結(jié)構(gòu)設(shè)計(jì)、備份恢復(fù)等核心知識(shí)點(diǎn),通過實(shí)際案例,讀者可以掌握精準(zhǔn)操作,避免數(shù)據(jù)丟失,提升開發(fā)效率,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • MySQL中的時(shí)區(qū)設(shè)置方式

    MySQL中的時(shí)區(qū)設(shè)置方式

    這篇文章主要介紹了MySQL中的時(shí)區(qū)設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL數(shù)據(jù)表分區(qū)策略及優(yōu)缺點(diǎn)分析

    MySQL數(shù)據(jù)表分區(qū)策略及優(yōu)缺點(diǎn)分析

    項(xiàng)目開發(fā)中,隨著數(shù)據(jù)庫數(shù)據(jù)量越來越大,單個(gè)表中數(shù)據(jù)太多,從而導(dǎo)致查詢速度變慢,而且由于表的鎖機(jī)制導(dǎo)致應(yīng)用操作也受到嚴(yán)重影響,出現(xiàn)了數(shù)據(jù)庫性能瓶頸。因此我們需要考慮分表與分區(qū),MySQL分表分區(qū)就是為了解決大數(shù)據(jù)量導(dǎo)致MySQL性能低下的問題。
    2021-05-05
  • MySQL運(yùn)維實(shí)戰(zhàn)之使用二進(jìn)制安裝部署

    MySQL運(yùn)維實(shí)戰(zhàn)之使用二進(jìn)制安裝部署

    這篇文章主要為大家介紹了MySQL運(yùn)維實(shí)戰(zhàn)之使用二進(jìn)制安裝部署示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論

浑源县| 曲靖市| 施甸县| 屯昌县| 太保市| 象州县| 中方县| 道真| 高要市| 莆田市| 绥阳县| 大宁县| 泰安市| 屏东县| 孝义市| 靖宇县| 桐乡市| 财经| 孙吴县| 都匀市| 新津县| 玉门市| 海门市| 榆社县| 克东县| 甘德县| 永新县| 昌黎县| 阿荣旗| 龙里县| 聊城市| 梁山县| 庆城县| 许昌县| 女性| 绥阳县| 扬中市| 遂平县| 乳山市| 石阡县| 崇礼县|