MySql小點心 2 常用的比較函式和比較操作符

2022-03-31 22:00:40 字數 2006 閱讀 9264

1、比較操作符:

=  、 >、  =、 <=、 <>、 != 、 <=>

這裡面就是知道下 <> 和 != 意義是一樣的都是不等於的意思,看個人的喜好

<=> 是用於當比較的兩邊的值存在是空(null)的情況,這種情況有的時候會遇到,mysql提供這種方式的比較符,類似於"=",不同的是當兩邊要比較的數都為null的話它返回true(表示兩邊相等),如果其中有一邊是null的話它返回為false(表示兩邊不相等)。如果是使用"="比較操作符,當兩邊任何一邊有null的時候返回都是null。

2、比較函式:

between...and :檢測某個數是不是在某個範圍內。 expr between min and max。對應的還有個not between...and,表示不再某個範圍

in() :檢測某個數是不是在某些數裡面。 expr in (value,...)。對應的是not in(),表示不在列出的數裡面  www.2cto.com  

interval(n,n1,n2,n3,...):返回n1、n2、.....中第乙個比n大的索引,n1、n2...需要按大小排序號比如interva(10,1,10,100,1000)這個函式返回2,100的索引為2

greatest():返回一組數的最大值 。對應的是least():返回一組數的最小值。

is :同布林值判斷,is boolean_value ,這裡需要注意的是boolean_value有三種 true、 false、 unknown,unknown對應於值為空的情況,比如null is unknown則返回true。同is相反的是is not,用法類似。

is null:判斷乙個值是不是為空。在使用odbc程式設計是這個is null除了判斷是否為空以為還有兩個用途:

1、如果 sql_auto_is_null 這個mysql系統變數設定為1(預設為1),當插入乙個auto_increment自動生成的值(自增長的值,系統自動會生成)之後,可以通過下面一條語句來得到之前插入的記錄:

[sql] 

select * from tbl_name where auto_col is null  

這裡tbl_name是表名稱,auto_col對應於自增長的列名。得到的記錄中那個自增長列所對應的值同我們呼叫last_insert_id()得到的值是相同的。當然如果插入失敗則上面的select沒有記錄返回,當然如果sql_auto_is_null被設定為0 false則也不行。

2、對應date或者datetime的資料格式對應的字段,並且字段設定為非空not null,可以通過is null來查詢「0000-00-00」這個特殊的日期,下面是**:

[sql] 

select * from tbl_name where date_column is null  

這個主要考慮到odbc裡面不支援「0000-00-00」的乙個日期值。

同is null對應的是is not null,使用類似。

strcmp:比較兩個字元,返回為-1、0、1這三種值。

www.2cto.com  

like:簡單的模式匹配,這個是常被用到的功能。通常我們知道"%"代表任意多個字元,另外"_"代表乙個字元。先看看like的格式:

[sql] 

expr like pat [escape 'escape_char']  

這裡後面的escape是指定轉義符號。預設的escape(轉義)符號是"\",如果需要使用「%」和「_」,預設情況下可以用"\%"和"\_"來表示;如果需要查詢"\n",則需要搜尋"\\n",如果需要查詢"\",則需要搜尋"\\\\",因為這裡有兩次的解析,一次是parser(文字黏貼器)生成的(就是如果expr裡面有『\』符號則黏貼器會把它轉變為'\\'),一次是匹配的時候的(匹配的時候『\\\\』就變為'\\'了)。

pat可以是字串、字串表示式,或者列名稱。

like也可以用在數字的表示式中,比如  10 like '1%' 這個也是返回true

另外要注意的是如果expr 或者 pat 中有乙個是null那麼 like將會返回 null

not like 同 like 類似

MySql小點心 1 賦值操作符 與

對於剛接觸到 mysql 的程式設計師來說,會對這兩個符號有疑問,因為會發現有的 裡用這個有的用另乙個。當然他們是有區別的。他們的區別也比較簡單 是真正意義上的賦值操作,左邊的變數設定為右邊的值。則只在兩種情況下作為賦值用,第一種就是在set語句裡面,set var value 另一種是在updat...

VC中實現GCC的2個比較常用的位運算函式

在gcc中內嵌了兩個位運算的函式,但在vc中並沒有這兩個函式 有相似函式 返回前導的0的個數。int builtin clz unsigned int x 返回後面的0個個數,和 builtin clz相對。int builtin ctz unsigned int x 這兩個函式在radix tre...

MySql管理的一點心得(2)

最後給出本人在redhat9.0下的mysql操作演示 選用資料庫的root使用者登入 weiwen weiwenlinux mysql uroot p enter password mypassword mysql create database mydb query ok,1 row affec...