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

Mysql計(jì)算字段長(zhǎng)度函數(shù)之CHAR_LENGTH函數(shù)

 更新時(shí)間:2023年05月18日 11:53:20   作者:山茶花開時(shí)。  
mysql中計(jì)算字符串長(zhǎng)度有兩個(gè)函數(shù)分別為char_length和length,char_length函數(shù)可以計(jì)算unicode字符,下面這篇文章主要給大家介紹了關(guān)于Mysql計(jì)算字段長(zhǎng)度函數(shù)之CHAR_LENGTH函數(shù)的相關(guān)資料,需要的朋友可以參考下

CHAR_LENGTH函數(shù)用于返回字符串的長(zhǎng)度,長(zhǎng)度單位為字符

不管漢字,數(shù)字或是字母都算是一個(gè)字符,包括中英文標(biāo)點(diǎn)符號(hào),空格也算是一個(gè)字符

語(yǔ)法結(jié)構(gòu)

CHAR_LENGTH(str)

str:計(jì)算長(zhǎng)度的字符串 

示例

-- 4
SELECT CHAR_LENGTH('test');
-- 12
SELECT CHAR_LENGTH('Hello World!');
-- 2
SELECT CHAR_LENGTH('小胡');
-- 3
SELECT CHAR_LENGTH('123');
-- 4
SELECT CHAR_LENGTH(',,,,');
-- 2
SELECT CHAR_LENGTH('  ');
-- 0
SELECT CHAR_LENGTH('');
-- Null
SELECT CHAR_LENGTH(NULL);

案例:對(duì)過(guò)長(zhǎng)的昵稱進(jìn)行截取處理

導(dǎo)入數(shù)據(jù)

drop table if exists user_info;
CREATE TABLE user_info (
    id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    uid int UNIQUE NOT NULL COMMENT '用戶ID',
    `nick_name` varchar(64) COMMENT '昵稱',
    achievement int COMMENT '成就值',
    level int COMMENT '用戶等級(jí)',
    job varchar(32) COMMENT '職業(yè)方向',
    register_time datetime COMMENT '注冊(cè)時(shí)間'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO user_info(uid,`nick_name`,achievement,`level`,job,register_time) VALUES
  (1001, '???', 19, 0, '算法', '2020-01-01 10:00:00'),
  (1002, '???號(hào)', 1200, 3, '算法', '2020-01-01 10:00:00'),
  (1003, '???號(hào)♂', 22, 0, '算法', '2020-01-01 10:00:00'),
  (1004, '牛客4號(hào)', 25, 0, '算法', '2020-01-01 11:00:00'),
  (1005, '???678901234號(hào)', 4000, 7, '算法', '2020-01-01 10:00:00'),
  (1006, '???7890123456789號(hào)', 25, 0, '算法', '2020-01-02 11:00:00');

user_info表(用戶信息表)

uid: 用戶ID   nick_name: 昵稱   achievement: 成就值   level: 等級(jí)   job: 職業(yè)方向

register_time: 注冊(cè)時(shí)間 

問(wèn)題:

有的用戶的昵稱特別長(zhǎng),在一些展示場(chǎng)景會(huì)導(dǎo)致樣式混亂,因此需要將特別長(zhǎng)的昵稱轉(zhuǎn)換一下再輸出,請(qǐng)輸出字符數(shù)大于10的用戶信息,對(duì)于字符數(shù)大于13的用戶輸出前10個(gè)字符然后加上三個(gè)點(diǎn)號(hào): "..."

-- 解法1
SELECT uid, IF(CHAR_LENGTH(nick_name) > 13,CONCAT(LEFT(nick_name,10),'...'),nick_name)AS nick_name
FROM user_info
WHERE CHAR_LENGTH(nick_name) > 10;
-- 解法2
SELECT uid,
       (CASE WHEN CHAR_LENGTH(nick_name) <= 13 THEN nick_name
             ELSE CONCAT(SUBSTRING(nick_name,1,10),'...')
        END)AS nick_name
FROM user_info
WHERE CHAR_LENGTH(nick_name) > 10;

結(jié)果展示:

解釋: 字符數(shù)大于10的用戶有1005和1006,長(zhǎng)度分別為13、17,因此需要對(duì)1006的昵稱截?cái)噍敵?nbsp; 

附:CHAR_LENGTH()和LENGTH()的區(qū)別

無(wú)論是LENGTH()還是CHAR_LENGTH()都是為了統(tǒng)計(jì)字符串的長(zhǎng)度。只不過(guò),LENGTH()是按照字節(jié)來(lái)統(tǒng)計(jì)的,CHAR_LENGTH()是按照字符來(lái)統(tǒng)計(jì)的。例如:一個(gè)包含5個(gè)字符且每個(gè)字符占兩個(gè)字節(jié)(比如漢字)的字符串而言,LENGTH()返回長(zhǎng)度10,CHAR_LENGTH()返回長(zhǎng)度是5;如果對(duì)于單字節(jié)的字符,則兩者返回結(jié)果相同。

一、char_length('string')/char_length(column_name)

1、返回值為字符串string或者對(duì)應(yīng)字段長(zhǎng)度,長(zhǎng)度的單位為字符,一個(gè)多字節(jié)字符(例如,漢字)算作一個(gè)單字符;

2、不管漢字還是數(shù)字或者是字母都算是一個(gè)字符;

3、任何編碼下,多字節(jié)字符都算是一個(gè)字符; 

二、length('string')/length(column_name)

1、utf8字符集編碼下,一個(gè)漢字是算三個(gè)字符,一個(gè)數(shù)字或字母算一個(gè)字符。

2、其他編碼下,一個(gè)漢字算兩個(gè)字符, 一個(gè)數(shù)字或字母算一個(gè)字符。

總結(jié)

到此這篇關(guān)于Mysql計(jì)算字段長(zhǎng)度函數(shù)之CHAR_LENGTH函數(shù)的文章就介紹到這了,更多相關(guān)Mysql CHAR_LENGTH函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql中的自連接與join關(guān)聯(lián)

    mysql中的自連接與join關(guān)聯(lián)

    這篇文章主要介紹了mysql中的自連接與join關(guān)聯(lián),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • mysql報(bào)錯(cuò)sql_mode=only_full_group_by解決

    mysql報(bào)錯(cuò)sql_mode=only_full_group_by解決

    這篇文章主要為大家介紹了mysql報(bào)錯(cuò)sql_mode=only_full_group_by解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • MySQL深分頁(yè)問(wèn)題的原因及解決方案

    MySQL深分頁(yè)問(wèn)題的原因及解決方案

    MySQL?作為最受歡迎的開源關(guān)系數(shù)據(jù)庫(kù)之一,被廣泛用于各種規(guī)模的應(yīng)用程序中,分頁(yè)是一種常見的數(shù)據(jù)檢索技術(shù),它允許用戶在大量數(shù)據(jù)中瀏覽和檢索信息,當(dāng)涉及到“深分頁(yè)”時(shí),即查詢大量數(shù)據(jù)后的頁(yè)面時(shí),MySQL?的性能可能會(huì)顯著下降,本文介紹了MySQL深分頁(yè)問(wèn)題的原因及解決方案
    2024-09-09
  • Mysql中RelayLog中繼日志的使用

    Mysql中RelayLog中繼日志的使用

    MySQL RelayLog中繼日志是主從復(fù)制架構(gòu)中的核心組件,負(fù)責(zé)將從主庫(kù)獲取的Binlog事件暫存并應(yīng)用到從庫(kù),本文就來(lái)詳細(xì)的介紹一下RelayLog中繼日志的使用,感興趣的可以了解一下
    2025-12-12
  • mysql 5.7.21 安裝配置方法圖文教程(window)

    mysql 5.7.21 安裝配置方法圖文教程(window)

    這篇文章主要為大家詳細(xì)介紹了window環(huán)境下mysql5.7.21安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 在虛擬機(jī)中下載安裝MySQL的圖文步驟

    在虛擬機(jī)中下載安裝MySQL的圖文步驟

    本文主要介紹了在虛擬機(jī)中下載MySQL的圖文步驟,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-09-09
  • 命令行模式下備份、還原 MySQL 數(shù)據(jù)庫(kù)的語(yǔ)句小結(jié)

    命令行模式下備份、還原 MySQL 數(shù)據(jù)庫(kù)的語(yǔ)句小結(jié)

    為了安全起見,需要經(jīng)常對(duì)數(shù)據(jù)庫(kù)作備份,或者還原,學(xué)會(huì)在命令行模式下備份、還原數(shù)據(jù)庫(kù),還是很有必要
    2012-11-11
  • MySQL一些常用高級(jí)SQL語(yǔ)句詳解

    MySQL一些常用高級(jí)SQL語(yǔ)句詳解

    對(duì)?MySQL?數(shù)據(jù)庫(kù)的查詢,除了基本的查詢外,有時(shí)候需要對(duì)查詢的結(jié)果集進(jìn)行處理。例如只取?10?條數(shù)據(jù)、對(duì)查詢結(jié)果進(jìn)行排序或分組等等,今天就給大家分享MySQL一些常用高級(jí)SQL語(yǔ)句,感興趣的朋友一起看看吧
    2022-06-06
  • Centos7下使用yum安裝mysql數(shù)據(jù)庫(kù)的詳細(xì)教程(增強(qiáng)版)

    Centos7下使用yum安裝mysql數(shù)據(jù)庫(kù)的詳細(xì)教程(增強(qiáng)版)

    這篇文章主要介紹了Centos7下使用yum安裝mysql數(shù)據(jù)庫(kù)的詳細(xì)教程(增強(qiáng)版),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • MySQL表設(shè)計(jì)和聚合函數(shù)以及正則表達(dá)式示例詳解

    MySQL表設(shè)計(jì)和聚合函數(shù)以及正則表達(dá)式示例詳解

    聚合函數(shù)在數(shù)據(jù)庫(kù)管理和分析中有著廣泛的應(yīng)用場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于MySQL表設(shè)計(jì)和聚合函數(shù)以及正則表達(dá)式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-07-07

最新評(píng)論

武义县| 乳源| 清涧县| 滦南县| 贵南县| 永登县| 荥经县| 湘潭县| 芜湖市| 江华| 高雄市| 昌都县| 溆浦县| 徐州市| 镇宁| 洛宁县| 彩票| 平阴县| 绥德县| 长宁区| 天全县| 白沙| 宁国市| 萨嘎县| 延津县| 八宿县| 阳泉市| 清水河县| 昌宁县| 定西市| 固阳县| 舞阳县| 普安县| 长子县| 冀州市| 舒城县| 亳州市| 泉州市| 海宁市| 龙泉市| 天长市|