mysql如何实现比较运算-创新互联

这篇文章将为大家详细讲解有关mysql如何实现比较运算,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都网站设计、大田网络推广、微信平台小程序开发、大田网络营销、大田企业策划、大田品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联为所有大学生创业者提供大田建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

MySQL按照以下规则进行数值比较:


  • 若有一个或两个参数为 NULL,除非NULL-safe <=> 等算符,则比较运算的结果为NULL。


  • 若同一个比较运算中的两个参数都是字符串,则按照字符串进行比较。


  • 若两个参数均为整数,则按照整数进行比较。


  • 十六进制值在不需要作为数字进行比较时,则按照二进制字符串进行处理。


  • 假如参数中的一个为 TIMESTAMP 或 DATETIME 列,而其它参数均为常数, 则在进行比较前将常数转为 timestamp。这样做的目的是为了使ODBC的进行更加顺利。 注意,这不适合IN()中的参数!为了更加可靠,在进行对比时通常使用完整的 datetime/date/time字符串。


  • 在其它情况下,参数作为浮点数进行比较。

在默认状态下,字符串比较不区分大小写,并使用现有字符集(默认为cp1252 Latin1,同时对英语也适合)。

为了进行比较,可使用CAST()函数将某个值转为另外一种类型。 使用CONVERT()将字符串值转为不同的字符集。请参见。

以下例子说明了比较运算中将字符串转为数字的过程:

mysql>SELECT 1 > 6x;

        -> 0

mysql>SELECT 7 > 6x;

        -> 1

mysql>SELECT 0 > x6;

        -> 0

mysql>SELECT 0 = x6;

        -> 1

这个如果不注意好确实可以导致安全问题的,比如menzhi007里举的那个列子,如果字符变量查询没有引号,但是用某些函数过滤了不可以直接注射,那么可以直接提交0就可以绕过了...

关于“mysql如何实现比较运算”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


本文名称:mysql如何实现比较运算-创新互联
转载注明:http://hbruida.cn/article/degshh.html