MySql小点心―2、常用的比较函数和比较操作符_MySQL
程序员文章站
2022-06-17 20:53:41
...
bitsCN.com
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(),表示不在列出的数里面 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这三种值。 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 类似 bitsCN.com
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(),表示不在列出的数里面 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这三种值。 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 类似 bitsCN.com
下一篇: 服务器运行了三十天,部分请求变慢了求解决