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 類似