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

Mysql中SUBSTRING函數(shù)的具體使用

 更新時間:2024年07月23日 11:02:59   作者:山茶花開時。  
本文主要介紹了Mysql中SUBSTRING函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

SUBSTRING函數(shù)

SUBSTRING函數(shù)是文本處理函數(shù),可以截取字符串

格式: SUBSTRING(s, start, length)

從字符串s的start位置截取長度為length的子字符串

如果SUBSTRING()函數(shù)接收2個參數(shù):SUBSTRING(s,start),則第一個參數(shù)為待截取的字符串,第二個參數(shù)為截取的起始位置。如果第二個參數(shù)為負(fù)整數(shù),則為倒數(shù)的起始位置

以字符串“abc123”為例

SUBSTRING()函數(shù)接收兩個參數(shù)

操作示例示例結(jié)果
SELECT SUBSTRING('abc123',2)bc123
SELECT SUBSTRING('abc123',-3)123

如果SUBSTRING()函數(shù)接收3個參數(shù):SUBSTRING(s,start,length),則第一個參數(shù)為待截取的字符串,第二個參數(shù)為截取的起始位置,第三個參數(shù)為截取的長度。如果第二個參數(shù)為負(fù)整數(shù),則為倒數(shù)的起始位置

以字符串“abc123”為例

SUBSTRING()函數(shù)接收3個參數(shù)

操作示例示例結(jié)果
SELECT SUBSTRING('abc123',2,3)bc1
SELECT SUBSTRING('abc123',-3,2)12

習(xí)題案例現(xiàn)有一張訂單表,order_time字段是精確到秒的字符串格式的時間,需查詢并獲取每個訂單的”年“、”月“、”日“,即衍生出3個新字段

注意:表中的時間是字符串格式的,因此可以使用SUBSTRING()函數(shù)提取年、月、日

原始表

查詢得到的結(jié)果 :

代碼 :

-- 建表語句
DROP TABLE IF EXISTS order_detail; 
CREATE TABLE order_detail( 
order_id VARCHAR(8), 
order_time VARCHAR(32) 
) 
ENGINE = InnoDB 
DEFAULT CHARSET = utf8; 
INSERT INTO 
order_detail (order_id,order_time) 
VALUE ('o001','2020-06-15 09:12:33') 
,('o002','2020-06-15 13:24:09') 
,('o003','2020-06-16 10:44:24') 
,('o004','2020-06-17 08:05:52') 
,('o005','2020-06-18 18:03:43');

-- 查詢語句
SELECT * ,
SUBSTRING(order_time,1,4) AS order_year,
SUBSTRING(order_time,6,2) AS order_month,
SUBSTRING(order_time,9,2) AS order_day 
FROM order_detail;

SUBSTRING_INDEX函數(shù) 

格式

SUBSTRING_INDEX(str, delimiter, number)

返回從字符串str的第number個出現(xiàn)的分隔符delimiter之前的子串;如果number是正數(shù),那么就是從左往右數(shù),返回第number個分隔符的左邊的全部內(nèi)容;相反,如果number是負(fù)數(shù),那么就是從右邊開始數(shù),第number個分隔符右邊的所有內(nèi)容

注意:如果number超過了實際分隔符的個數(shù),則返回實際個數(shù)的字符串

參數(shù)說明

  • str: 待截取的字符串,STRING類型
  • delimiter: 分隔符,STRING類型
  • number: 指定分隔符位置,INT類型

返回值

返回STRING類型字符串,如果任一輸入?yún)?shù)為NULL,則返回NULL

示例

-- 案例1
SELECT SUBSTRING_INDEX('a*b','*',1) -- a

-- 案例2
SELECT SUBSTRING_INDEX('a*b','*',-1) -- b

-- 案例3
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1) -- c
-- 案例3可拆解成以下兩個步驟
SELECT SUBSTRING_INDEX('a*b*c*d*e','*',3); -- a*b*c 
SELECT SUBSTRING_INDEX('a*b*c','*',-1) -- c

-- 案例4
-- 如果任一輸入?yún)?shù)為NULL,則返回NULL
SELECT SUBSTRING_INDEX('https://www.google.com', null, 2);
SELECT SUBSTRING_INDEX('https://www.google.com', '.', null);
SELECT SUBSTRING_INDEX(null, '.', 2);

-- 案例5
-- 如果number超過了實際分隔符的個數(shù),則返回實際個數(shù)的字符串
-- https://www.google.com
SELECT SUBSTRING_INDEX('https://www.google.com', '.', 4);

擴展練習(xí)

1.統(tǒng)計每種性別的人數(shù) 

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

drop table if exists user_submit;
CREATE TABLE `user_submit` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`profile` varchar(100) NOT NULL,
`blog_url` varchar(100) NOT NULL
);
INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
INSERT INTO user_submit VALUES(2,3214,'165cm,45kg,26,female','http:/url/dkittycc');
INSERT INTO user_submit VALUES(3,6543,'178cm,65kg,25,male','http:/url/tigaer');
INSERT INTO user_submit VALUES(4,4321,'171cm,55kg,23,female','http:/url/uhsksd');
INSERT INTO user_submit VALUES(5,2131,'168cm,45kg,22,female','http:/url/sysdney');

user_submit表  

問題:現(xiàn)在運營舉辦了一場比賽,收到了一些參賽申請,表數(shù)據(jù)記錄形式如上所示,現(xiàn)在運營想要統(tǒng)計每個性別的用戶分別有多少參賽者,請取出相應(yīng)結(jié)果  

SELECT SUBSTRING_INDEX(profile,',',-1)AS gender, 
       COUNT(device_id)AS number
FROM user_submit
GROUP BY gender;

結(jié)果展示

2.提取博客URL中的用戶名 

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

drop table if exists user_submit;
CREATE TABLE `user_submit` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`profile` varchar(100) NOT NULL,
`blog_url` varchar(100) NOT NULL
);
INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
INSERT INTO user_submit VALUES(2,3214,'165cm,45kg,26,female','http:/url/dkittycc');
INSERT INTO user_submit VALUES(3,6543,'178cm,65kg,25,male','http:/url/tigaer');
INSERT INTO user_submit VALUES(4,4321,'171cm,55kg,23,female','http:/url/uhsksd');
INSERT INTO user_submit VALUES(5,2131,'168cm,45kg,22,female','http:/url/sysdney');

user_submit表  

問題:對于申請參與比賽的用戶,blog_url字段中url字符后的字符串為用戶個人博客的用戶名,現(xiàn)在運營想要把用戶的個人博客用戶字段提取出單獨記錄為一個新的字段,請取出所需數(shù)據(jù)  

SELECT device_id, 
       SUBSTRING_INDEX(blog_url,'/',-1)AS user_name
FROM user_submit;

結(jié)果展示 

3.截取出年齡

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

drop table if exists user_submit;
CREATE TABLE `user_submit` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`profile` varchar(100) NOT NULL,
`blog_url` varchar(100) NOT NULL
);
INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
INSERT INTO user_submit VALUES(2,3214,'165cm,45kg,26,female','http:/url/dkittycc');
INSERT INTO user_submit VALUES(3,6543,'178cm,65kg,25,male','http:/url/tigaer');
INSERT INTO user_submit VALUES(4,4321,'171cm,55kg,23,female','http:/url/uhsksd');
INSERT INTO user_submit VALUES(5,2131,'168cm,45kg,22,female','http:/url/sysdney');

user_submit表  

問題:現(xiàn)在運營舉辦了一場比賽,收到了一些參賽申請,表數(shù)據(jù)記錄形式如上所示,現(xiàn)在運營想要統(tǒng)計每個年齡的用戶分別有多少參賽者,請取出相應(yīng)結(jié)果 

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(profile,',',-2),',',1)AS age, 
       COUNT(device_id)AS number
FROM user_submit
GROUP BY age;

結(jié)果展示

到此這篇關(guān)于Mysql中SUBSTRING函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Mysql SUBSTRING函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • MySQL字段長度與索引限制問題的原因分析及解決方案

    MySQL字段長度與索引限制問題的原因分析及解決方案

    在數(shù)據(jù)庫開發(fā)與維護(hù)過程中,字段長度和索引限制是常見的性能與穩(wěn)定性問題,本文將通過一個實際案例,詳細(xì)分析 “Data too long for column” 和 “Specified key was too long” 錯誤的原因,并提供多種解決方案,幫助開發(fā)者優(yōu)化數(shù)據(jù)庫設(shè)計,需要的朋友可以參考下
    2025-07-07
  • 使用Canal實現(xiàn)MySQL數(shù)據(jù)同步的完整指南

    使用Canal實現(xiàn)MySQL數(shù)據(jù)同步的完整指南

    Canal 是阿里巴巴開源的一個基于 MySQL 數(shù)據(jù)庫增量日志(binlog)解析的組件,本文主要介紹了如何使用Canal實現(xiàn)MySQL數(shù)據(jù)同步功能,希望對大家有所幫助
    2025-06-06
  • lnmp關(guān)閉mysql日志保護(hù)硬盤空間的方法

    lnmp關(guān)閉mysql日志保護(hù)硬盤空間的方法

    這篇文章主要介紹了lnmp關(guān)閉mysql日志保護(hù)硬盤空間的方法,需要的朋友可以參考下
    2014-02-02
  • mysql中InnoDB事務(wù)隔離的記錄鎖、間隙鎖和臨鍵鎖

    mysql中InnoDB事務(wù)隔離的記錄鎖、間隙鎖和臨鍵鎖

    mysql中InnoDB默認(rèn)的事務(wù)隔離級別為可重復(fù)讀(Repeated Read, RR),我們當(dāng)下的所有介紹都是基于這個隔離級別為前提的,記錄鎖鎖定索引關(guān)聯(lián)的具體記錄,間隙鎖鎖定間隔,防止間隔中被其他事務(wù)插入,臨鍵鎖鎖定索引記錄+間隔,防止幻讀
    2023-12-12
  • mysql鎖表確認(rèn)及解除鎖表的實現(xiàn)示例

    mysql鎖表確認(rèn)及解除鎖表的實現(xiàn)示例

    使用MySQL數(shù)據(jù)庫時,我們可能會遇到數(shù)據(jù)庫表被鎖定的情況,本文主要介紹了mysql鎖表確認(rèn)及解除鎖表的實現(xiàn)示例, 具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 一文帶你理解MySQL?TCL?事務(wù)控制

    一文帶你理解MySQL?TCL?事務(wù)控制

    本文主要介紹了MySQL?TCL事務(wù)控制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法

    win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法

    這篇文章主要介紹了win10下安裝mysql8.0.23 及 “服務(wù)沒有響應(yīng)控制功能”問題解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Oracle 和 mysql的9點區(qū)別

    Oracle 和 mysql的9點區(qū)別

    這篇文章主要介紹了Oracle 和 mysql的9點區(qū)別,需要的朋友可以參考下
    2014-04-04
  • Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開窗函數(shù)

    Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開窗函數(shù)

    lead和lag是在SQL中用于創(chuàng)建窗口函數(shù)的兩個常用函數(shù),這篇文章主要給大家介紹了關(guān)于Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開窗函數(shù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 淺談mysql可有類似oracle的nvl的函數(shù)

    淺談mysql可有類似oracle的nvl的函數(shù)

    下面小編就為大家?guī)硪黄獪\談mysql可有類似oracle的nvl的函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

江阴市| 遵义县| 新巴尔虎右旗| 常山县| 屯昌县| 闻喜县| 临汾市| 即墨市| 泸定县| 乐至县| 班玛县| 阿勒泰市| 航空| 昌平区| 宁南县| 元阳县| 股票| 萨嘎县| 湘潭市| 潜江市| 三原县| 大理市| 海阳市| 肇州县| 凤翔县| 丹江口市| 乌兰察布市| 根河市| 永福县| 通化县| 镇坪县| 长沙县| 南靖县| 宁海县| 定边县| 岱山县| 韶山市| 蚌埠市| 来安县| 平顺县| 新余市|