mysql比较运算_mysql的比较运算

mysql的比较运算

在menzhi007的blog里看到非常有意思的东西:http://hi.baidu.com/menzhi007/blog/item/c2e98551a18754848c54301c.html

在mysql手册里:

http://www.phpchina.com/manual/mysql/functions.html#comparison-operators

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

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

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

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

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

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

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

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

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

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

mysql> SELECT 1 > '6x';

-> 0

mysql> SELECT 7 > '6x';

-> 1

mysql> SELECT 0 > 'x6';

-> 0

mysql> SELECT 0 = 'x6';

-> 1

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

最后感谢menzhi007及hi群的各大牛的讨论,尤其是ryat牛的指点:)

相关文档:

本文软件的下载地址就不列出,主要是记录安装时的步骤及相关问题的处理方法;基于安装方法目前有两种,一种是利用RPM包安装,一种源码编译安装;以下主

要是以源码编译安装;因为源码安装软件的相互依赖性小,安装方式用各种unix/linux系统,维护方便。如果想去除相关服务时,直接rm

–rf目录 即可;建议采用源码� ......

1.首先,设置数据库支持中文gb2312/gbk。

具体方法:

打开mySQL文件夹,修改my.ini配置文件。

[client]

port=3306

default-character-set=gb2312

以及

[mysqld]下的

default-character-set=gb2312

修改,保存,重启。若设为System服务,可以在控制面板-管理工具-服务中找到mySQL服务,重启。

2.保证Web ......

Another Look at MySQL 5.1's SQL Diagnostic Tools

http://dev.mysql.com/tech-resources/articles/mysql_51_diagnostic_tools.html 数据库的性能决定因素:

(1)数据库的设计

(2)SQL代码 可以用以下几种方法来解决一些性能问题:

(1)索引

(2)水平分区

(3)列适应的表

colum ......

在日常的工作中,保护数据免受未授权用户的侵犯是系统管理员特别关心的问题。如果你目前用的是MySQL,就可以使用一些方便的功能来保护系统,来大大减少机密数据被未授权用户访问的风险。

企业最有价值的资产通常是其数据库中的客户或产品信息。因此,在这些企业中,数据库管理的一个重要部分就是保护这些数据免受外部攻击� ......

Advanced MySQL Replication Techniques

http://dev.mysql.com/tech-resources/articles/advanced-mysql-replication.html

在多个master中复制的问题,主要是自增主键问题。

可以用auto_increment_increment和auto_increment_offset参数解决

(1)auto_increment_increment:控制增长的间隔

(2)auto_increment_of ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值