Mysql查询时,对于数值型字段加单引号会引起的误解~
假设有表 tb1
ID | name|
----+--------+
1 |2toon|
2 |1*xyz|
语句1:
select * from tb1 where ID='2toon' or name ='2toon';
mysql服务器在某模式下,可以执行这条句,就成功返回两条记录,原因在于 ID=‘2toon’ 加了单引号,mysql解释为 ID=2.
语句2
select * from tb1 where ID=2toon or name ='2toon';
此语句执行不了。
因此,想要得准确的查询结果,对int的字段一定要做判断与转类型。
转类型还可以防止SQL注入。
相关文档:
1.关键字
auto_increment
2.自增用法
例:
CREATE TABLE animals ( id mediumint not null auto_increment,
name char(30) not null,
primary key (id));
3.关于自增
Q:怎么获得当前的自增的最大值?
A:select @@identity
Q:怎么获得table的当前自增最大值?
A:select max(i ......
LINUX下 mysql客户端不能输入中文
今天遇到了这个问题,在LINUX下输入中文,没有问题,但在MYSQL客户端上无法输入中文,很奇怪?
找了很多资料终于解决了这个问题,其实这个和字符集无关。通常出现在自己编译的mysql版本上,如果是REDHAT的话,请使用系统自带MYSQL客户端。系统默认rpm安装的mysql则没有这个问题出现。
� ......
关于MySQL事务处理学习记
START TRANSACTION, COMMIT和ROLLBACK语法
START TRANSACTION | BEGIN [WORK]
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET AUTOCOMMIT = {0 | 1}
START
TRANSACTION或BEGIN语句可以开始一项新的事务。COMMIT可以提交当前事务 ......
[root@pku-fan MySQL]# cat limbs.sql
CREATE DATABASE cookbook;
USE cookbook;
DROP TABLE IF EXISTS limbs;
CREATE TABLE limbs
(
thing VARCHAR(20), # what the thing is
legs INT, ......
因为MySQL再debian下默认是不允许远程连接的,所以需要注释掉这个限制。我的MySQL是用apt-get安装的,所以路径是默认的(如果是自己
手动安装,可以自己寻找下正确的路径),用命令 vi /etc/mysql/my.cnf 打开文件,注释掉 bind-address = 127.0.0.1 保存:wq 回车。
然后再登录到MySQL服务器端,在mysql库下� ......