首頁 資料庫 mysql教程 MySQL优化之运算符_MySQL

MySQL优化之运算符_MySQL

Jun 01, 2016 pm 01:00 PM
運算符

<strong style="font-family: Arial, Verdana, sans-serif;">安全等于运算符(<=>)</strong>
登入後複製

这个操作符和=操作符执行相同的比较操作,不过<=>可以用来判断NULL值。

在两个操作数均为NULL时,其返回值为1而不为NULL;

而当一个操作数为NULL时,其返回值为0而不为NULL。

下面分别是 SELECT NULL <=>1 SELECT 1<=>0 SELECTNULL <=>NULL 的执行结果

在两个操作数均为NULL时,其返回值为1而不为NULL;

\

\

\

LEAST运算符

语法格式为:LEAST(值1,值2,...值n),其中值n表示参数列表中有n个值。在有两个或多个参数的情况下,返回最小值。

假如任意一个自变量为NULL,则LEAST()的返回值为NULL

使用LEAST运算符进行大小判断,SQL语句如下:

SELECT LEAST(2,0),LEAST(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;),LEAST(10,NULL)
登入後複製
\

由结果可以看到,当参数中是整数或者浮点数时,LEAST将返回其中最小的值;

当参数为字符串时,返回字母中顺序最靠前的字符;

当比较值列表中有NULL时,不能判断大小,返回值为NULL

GREATEST运算符

语法格式为: GREATEST(值1,值2,...值n),其中n表示参数列表中有n个值。

在有两个或多个参数的情况下,返回最大值。

假如任意一个自变量为NULL,则GREATEST()的返回值为NULL

使用GREATEST运算符进行大小判断,SQL语句如下:

SELECT GREATEST(2,0),GREATEST(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;),GREATEST(10,NULL)
登入後複製
\

由结果可以看到,当参数中是整数或者浮点数时,GREATEST将返回其中最大的值;

当参数为字符串时,返回字母中顺序最靠后的字符;

当比较值列表中有NULL时,不能判断大小,返回值为NULL

REGEXP 运算符

在SQLSERVER里是没有正则函数或者运算符的,MYSQL在这方面的确比较完善

用来匹配字符串,语法格式为:expr REGEXP 匹配条件,如果expr满足匹配条件,返回1;

如果不满足,则返回0;

若expr或匹配条件任意一个为NULL,则结果为NULL

常用的几种通配符:

(1)'^'匹配以该字符后面的字符开头的字符串

(2)'$'匹配以该字符后面的字符结尾的字符串

(3)'.'匹配任何一个单字符

(4)'[...]'匹配在方括号内的任何字符。例如,“[abc]" 匹配a、b或c。

字符的范围可以使用一个'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字

(5)'*' 匹配零个或多个在他前面的字符。例如,“x*”匹配任何数量的'*'字符,“[0-9]*”匹配任何数量的数字,

而“.*”匹配任何数量的任何字符。

使用REGEXP 运算符进行字符串匹配运算,SQL语句如下:

SELECT &#39;ssky&#39; REGEXP &#39;^s&#39;,&#39;ssky&#39; REGEXP &#39;y$&#39; ,&#39;ssky&#39; REGEXP &#39;.sky&#39;,&#39;ssky&#39; REGEXP &#39;[ab]&#39;;
登入後複製
\

由结果可以看到,指定匹配字符串为ssky。

'^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;

'y$'表示匹配任何以字母y结尾的字符串,因此满足匹配条件,返回1;

'.sky'表示匹配任何以sky结尾,字符长度为4的字符串,因此满足匹配条件,返回1;

'^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;

'[ab]'表示匹配任何包含字母a或者b的字符串,指定字符串中没有字母a也没有字母b,因此不满足匹配条件,返回0;

注意:正则表达式是一个可以进行复杂查询的强大工具,相对于LIKE字符串匹配,他可以使用更多的通配符类型,查询结果更加灵活

逻辑运算符

逻辑与运算符:AND或者&&

逻辑或运算符:OR或者||

异或运算符:XOR

当任意一个操作数为NULL时,返回值为NULL;对于非NULL的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0;

如果一个为0值,另一个为非0值,返回结果为1

使用异或运算符XOR进行逻辑判断,SQL语句如下

SELECT 1 XOR 1, 0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1
登入後複製
\

由结果可以看到‘1 XOR 1’和‘0 XOR 0’中运算符两边的操作数都为非零值,或者都是零值,因此返回0;

'1 XOR 0'中两边的操作数,一个为0值,另一个为非0值,返回结果为1;

'1 XOR NULL'中有一个操作数为NULL,返回结果为NULL;

'1 XOR 1 XOR 1'中有多个操作数,运算符相同,因此运算符从左到右依次计算,'1 XOR 1'的结果为0,再与1进行异或运算,因此结果为1。

注意: a XOR b的计算等同于(a AND (NOT b))或者(NOT a AND ( b))

位运算符

由于比较少用到,这里只做简单介绍

位运算符是用来对二进制字节中的位进行测试、移位或者测试处理

MYSQL中提供的位运算有

按位或(|)

按位与(&)

按位异或(^)

按位左移(<<)

按位右移(>>)

按位取反(~):反转所有比特

TIPS:可以使用BIN()=binary函数查看一个十进制数的二进制表示

例如20这个数字 SELECT BIN(20)

二进制表示为:10100

\

特别提示

某一些MYSQL中的特殊字符需要用转义字符才能插入数据库,否则产生意料之外的结果。

下面的特殊字符需要在输入时加反斜线符号开头

输入单引号需要:\'

输入双引号需要:\''

输入反斜杠:\\

输入回车符:\r

输入换行符:\n

输入制表符:\tab

输入退格符:\b

在插入这些特殊字符到数据库之前一定要进行转义处理

例如插入一个单引号,加了反斜杠,插入成功

INSERT INTO table_1(NAME) VALUES(&#39;\&#39;&#39;)

SELECT * FROM table_1
登入後複製
\

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1248
24
c語言開根號運算子是什麼 c語言開根號運算子是什麼 Mar 06, 2023 pm 02:39 PM

在c語言中,沒有開根號運算符,開根號使用的是內建函數“sqrt()”,使用語法“sqrt(數值x)”;例如“sqrt(4)”,就是對4進行平方根運算,結果為2。 sqrt()是c語言內建的開根號運算函數,其運算結果是函數變數的算術平方根;此函數既不能運算負數值,也無法輸出虛數結果。

golang 報錯:「invalid use of … operator」 如何解決? golang 報錯:「invalid use of … operator」 如何解決? Jun 24, 2023 pm 05:54 PM

對於Golang開發者來說,「invaliduseof…operator」是一個常見的報錯。這個報錯通常會在使用變長參數函數時出現。它在編譯時就會被檢測出來,並指出哪些部分有問題。這篇文章將介紹如何解決這個報錯。一、什麼是變長參數函數變長參數函數也稱為可變參數函數,是Golang語言中的一種函數型別。使用變長參數函數可以像如下方式定義多個

Java中的%是什麼意思 Java中的%是什麼意思 Mar 06, 2023 pm 04:48 PM

在Java中,「%」是取餘的意思,是一個二元算術運算符,可進行除法運算並取得餘數,語法「操作數1 % 操作數2」。取餘運算子「%」的運算元通常是正整數也可以是負數甚至是浮點數,如果負數參與此運算,則結果的正負取決於前面一個數是正數還是負數。

C語言中+=運算子的意義與用法解析 C語言中+=運算子的意義與用法解析 Apr 03, 2024 pm 02:27 PM

+=運算子用於將左操作數的值加上右操作數的值,並將結果賦值給左操作數,適用於數字類型且左操作數必須可寫。

php中「==」符號的意思是什麼 php中「==」符號的意思是什麼 Mar 14, 2023 pm 07:05 PM

在php中,「==」符號是比較運算符,可以比較兩個運算元是否相等,語法「操作數1 == 運算元2」。 「==」運算子會比較、並測試左邊的變數(表達式或常數)是否與右邊的變數(表達式或常數)具有相同的值;它只比較變數的值,而不是資料類型。如果兩個值相同,則傳回true值;如果兩個值不相同,則傳回false值。

Python 語法的心智圖:深入理解程式碼結構 Python 語法的心智圖:深入理解程式碼結構 Feb 21, 2024 am 09:00 AM

python憑藉其簡單易讀的語法,廣泛應用於廣泛的領域。掌握Python語法的基礎架構至關重要,既可以提高程式效率,又能深入理解程式碼的運作方式。為此,本文提供了一個全面的心智圖,詳細闡述了Python語法的各個面向。變數和資料類型變數是Python中用於儲存資料的容器。心智圖展示了常見的Python資料類型,包括整數、浮點數、字串、布林值和列表。每個資料類型都有其自身的特性和操作方法。運算符運算符用於對資料類型執行各種操作。心智圖涵蓋了Python中的不同運算子類型,例如算術運算子、比

php怎麼判斷兩個數能否整除 php怎麼判斷兩個數能否整除 Jan 10, 2023 pm 03:12 PM

在php中,可以使用「%」和「==」運算子來判斷兩個數能否整除;只需要使用「%」運算子將兩個數相除取得餘數,再使用「==」運算符判斷所獲得的餘數是否為0即可,語法“數1 % 數2 == 0”,若為0則能整除,若不為0則無法整除。

Python運算子:從菜鳥到大師的終極指南 Python運算子:從菜鳥到大師的終極指南 Mar 11, 2024 am 09:13 AM

python運算子簡介運算子是特殊符號或關鍵字,用於執行兩種或多種運算元之間的運算。 Python提供了多種運算符,涵蓋廣泛的用途,從基本的數學運算到複雜的資料操作。數學運算子數學運算子用於執行常見的數學運算。它們包括:運算子運算元範例+加法a+b-減法a-b*乘法a*b/除法a/b%模運算(取餘數)a%b**冪運算a**b//整除(丟棄餘數) a//b邏輯運算子邏輯運算子用於將布林值連接起來並對條件進行求值。它們包括:運算子操作範例and邏輯與aandbor邏輯或aorbnot邏輯非nota比較運算

See all articles