MySQL和Oracle字符串截取函數用法總結(比較)

2022-01-26 倫少的博客

點擊上方'倫少的博客'關注與您一起成長

前言

本文總結MySQL和Oracle的字符串截取函數的用法

工作中MySQL和Oracle都用,有時會碰到兩種資料庫SQL用法的不同,就會上網查一下,但是時間久了,就忘記了,好記性不如爛筆頭,所以寫個筆記備忘一下~

1、MySql

函數:SUBSTRING 或 SUBSTR

1.1 語法

位置

1SUBSTRING(string,position);
2SUBSTRING(string FROM position);

位置和長度

1SUBSTRING(string,position,length);
2SUBSTRING(string FROM position FOR length);

1.2 下標1.3 示例詳解1.3.1 位置

position>0,從position(包含)開始

1SELECT SUBSTRING('Hello World',1);
2SELECT SUBSTRING('Hello World' FROM 7);

1Hello World
2World

position=0返回空

1SELECT SUBSTRING('Hello World',0);

position<0,與position為正時是一樣的,下面的sql的效果是相同的

1SELECT SUBSTRING('Hello World',-11);
2SELECT SUBSTRING('Hello World' FROM -5);

當position的絕對值>LENGTH(string)時,返回空,和position=0時一樣

1SELECT SUBSTRING('Hello World',12);
2SELECT SUBSTRING('Hello World',-12);

1.3.2 位置和長度

position的用法和上面講的是一樣的,下面僅總結length
length>0時返回length個字符數,當length>string的可截取的長度時,只返回可截取的長度

1SELECT SUBSTRING('Hello World',1,5);
2SELECT SUBSTRING('Hello World',6,20);

1Hello
2World

length<=0時返回空

1SELECT SUBSTRING('Hello World',1,0);
2SELECT SUBSTRING('Hello World',1,-20);

下面等價

1SELECT SUBSTRING('Hello World',6,20);
2SELECT SUBSTRING('Hello World' FROM 6 FOR 20);

可通過LENGTH查看字符串的長度驗證(當length>string的可截取的長度時)

1SELECT LENGTH(SUBSTRING('Hello World' FROM 6 FOR 20));

16

2、Oracle

函數:SUBSTR

和MySql不同的是沒有SUBSTRING

2.1 語法

位置

1SUBSTR(string,position);
2SUBSTR(string FROM position);

位置和長度

1SUBSTR(string,position,length);
2SUBSTR(string FROM position FOR length);

2.2 下標2.3 示例詳解2.3.1 位置

與MySQL一樣,position>0和position<0時是一樣的效果,參照上面的下標對應即可,不同的是,position=0和position=1的效果是一樣的。
下面三個sql效果一樣

1SELECT SUBSTR('Hello World',0) FROM DUAL;
2SELECT SUBSTR('Hello World',1) FROM DUAL;
3SELECT SUBSTR('Hello World',-11) FROM DUAL;

1Hello World

當position的絕對值>LENGTH(string)時,返回[NULL]

1SELECT SUBSTR('Hello World',12) FROM DUAL
2SELECT SUBSTR('Hello World',-12) FROM DUAL;

1[NULL]

2.3.2 位置和長度

position的用法和上面講的是一樣的,下面僅總結length
length>0時返回length個字符數,當length>string的可截取的長度時,只返回可截取的長度,這點和MySQL相同

1SELECT SUBSTR('Hello World',1,5) FROM DUAL;
2SELECT SUBSTR('Hello World',6,20) FROM DUAL;

1Hello
2World

length<=0時返回[NULL],這點和MySQL不同

1SELECT SUBSTR('Hello World',1,0) FROM DUAL;
2SELECT SUBSTR('Hello World',6,-20) FROM DUAL;

1 [NULL]

3 比較總結

最後比較一下MySQL和Oracle的不同

1、 MySQL函數為SUBSTRING 或 SUBSTR,Oracle只有SUBSTR

2、 position=0時MySQL返回空,而Oracle和position=1時一樣

3、 當position的絕對值>LENGTH(string)時和length<=0時,MySQL返回空,而Oracle返回[NULL]

相關焦點

  • MySQL字符串截取 和 截取字符進行查詢
    通過mysql自帶的一些字符串截取函數,對數據進行處理,下面是我整理的字符串截取 和 截取字符進行查詢。一、MySQL中字符串的截取MySQL中有專門的字符串截取函數:其中常用的有兩種:substring_index(str,delim,count) 和concat 1.substring_index(str,delim,count) 函數的使用較為普遍
  • Oracle字符型函數
    Oracle字符型函數通過上一章節ORACLE函數的介紹,Oracle字符型函數是單行函數當中的一種,是用來處理字符串類型的函數,通過接收字符串參數,然後經過操作返回字符串結果的函數
  • mysql和oracle語法異同
    一、mysql裡的ifnull(a,b)對應oracle的nvl(a,b);二、日期比較:mysql: 可以用Date類型的日期進行比較時間比較。oracle:必須用to_date()函數和to_char()函數配合轉換成統一格式的日期字符串,然後進行比較。
  • 由MySQL字符串函數考慮到的繞過利用
    ,通過查找以先函數來進行代替利用先對用到的函數簡單介紹ascii():返回字符串str的最左面字符的ASCII代碼值。mysql> select CONV("a",16,2); -> '1010'bin():返回數字的二進位表示形式,作為字符串值(注意:必須是數字)oct():函數返回數字N的八進位數的字符串表示,這相當於使用CONV(N,10,8)。
  • MySQL函數基礎——字符串函數詳解
    昨天,咱們對MySQL的數學函數進行了講解,今天,咱們再來解析MySQL字符串函數。字符串函數主要用來處理資料庫中的字符串數據,MySQL中字符串函數有:計算字符串長度函數、字符串合併函數、字符串替換函數、字符串比較函數、查找指定字符串位置函數等。
  • Oracle基礎學習(01)-字符函數
    #舉例:initcap('i am davis') ->'I Am Davis'       initcap('i-am-davis')->'I-Am-Davis' #除了空格外其他分隔符也可以二、字符串拼接和截取1.concat#功能:連接兩個字符串,但是這個函數並不常用,通常使用'||'取代。
  • MySQL與oracle資料庫的一些區別
    【IT168 技術】1、 組函數用法規則  mysql中組函數在select語句中可以隨意使用,但在oracle中 如果查詢語句中有組函數,那其他列名必須是組函數處理過的,或者是group by子句中的列 否則報錯。
  • MySQL常用函數介紹
    SELECT語句及其條件表達式都可以使用這些函數,函數可以幫助用戶更加方便的處理表中的數據,使MySQL資料庫的功能更加強大。本篇文章主要為大家介紹幾類常用函數的用法。1.聚合函數聚合函數是平時比較常用的一類函數,這裡列舉如下:2.數值型函數數值型函數主要是對數值型數據進行處理,得到我們想要的結果,常用的幾個列舉如下,具體使用方法大家可以試試看。
  • (實用篇)多個PHP中文字符串截取函數
    以下是文章分享1群,由於群人數已超過300,不能掃碼進群,這個任務呢,就由小篇來拉你們進群了,掃描下面二維碼,加小篇好友~字符串截取是一個非常常見的編程任務,而往往帶中文的字符串截取會經常用到。雖然不難,但是自己寫函數實現又耗費時間,這裡介紹一個比較好用的字符串截取函數,能夠勝任基本的需求了<?
  • 字符串中間截取函數(Mid)、長度函數(Len)與查找函數(Instr)
    這講是第二節「字符串中間截取函數(Mid)、長度函數(Len)與查找函數(Instr)」。這套教程從簡單的錄製宏開始講解,一直到窗體的搭建,內容豐富,案例眾多。大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。
  • Excel之四大字符處理函數(查找/替換/拼接/截取),附詳細操作實例
    上一篇文章總結了八大日期函數應用場景,本篇來總結下字符函數。字符函數主要應用在數據清洗和處理階段,尤其是非結構化數據,可能要佔到80%的工作量,可見字符函數的重要性。② righ(text,num_chars)text被截取的字符,num_chars截取的長度,與left用法一致,只是從右邊開始數
  • 關於mysql中運算符與函數的概述
    1.算術運算符:2.比較運算符:3.邏輯運算符:MySQL數值函數:1.獲取整數的函數:2.四捨五入的函數:3.截斷函數:4.取模:mysql字符函數:1.字符串連接函數:2.字符中轉換大小寫函數:3.求字符串長度的函數:4.刪除空格函數:5.截取字符串:6.獲取指定長度的字符串函數:
  • MYSQL 常用函數
    >CONCAT(str1, str2,…,strn)連接字符串str1,…,strn為一個完整字符串INSERT(str, x, y, instr)將字符串str從第x位置開始,y個字符長的子串替換為字符串instrLOWER(str) /  UPPER(str)將字符串str中所有字符變為小寫(大寫)
  • Mysql 手工注入【常規union查詢篇】
    下面是注入mysql時經常會用到的一些單行函數,熟練使用是靈活注入的前提,尤其是在對抗一些waf的時候字符串連接函數,將多個字符串連接成一個字符串,注意,中間只要字符串有一個為空,最後結果也為空 concat(str1,str2,str3.
  • (基礎篇)PHP字符串函數
    PHP字符串函數包括查找字符位置函數;提取子字符函數;替換字符串;字符長度;比較字符函數;分割成數組字符;去除空格等等
  • php字符串函數
    >htmlentities — 將字符串中一些字符轉換為HTML實體htmlspecialchars_decode —htmlspecialchars()函數的反函數,將HTML實體轉換為字符htmlspecialchars — 將字符串中一些字符轉換為HTML實體implode — 將數組用特定的分割符轉變為字符串join — 將數組轉變為字符串
  • Oracle字符串替換小技巧,超實用
    資料庫中字符串的替換是比較常用的操作,Oracle已經為我們提供了幾個實用的函數來處理字符串的替換操作,常用的主要有replace、regexp_replace 和 translate三個函數,接下來我們來逐個看下。
  • Excel字符替換神器:Substitute函數的用法
    曾經有一個Excel函數的讀音讓蘭色拗口,它就是Substitute ,今天給大家介紹一下這個函數的用法。
  • JS-字符串截取方法
    2、stringObject.substring(form, to)參數說明:返回值說明:    該方法返回一個新的字符串,該字符串值包含 stringObject 的一個子字符串,其內容是從 form 處到 stop-1 處的所有字符,其長度為
  • (實用篇)php中計算中文字符串長度、截取中文字符串的函數代碼
    以下是文章分享1群,由於群人數已超過300,不能掃碼進群,這個任務呢,就由小篇來拉你們進群了,掃描下面二維碼,加小篇好友~在PHP中,我們都知道有專門的mb_substr和mb_strlen函數,可以對中文進行截取和計算長度,但是,由於這些函數並非PHP的核心函數,所以,它們常常有可能沒有開啟。