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注入。
相关文档:
Mysql,SqlServer,Oracle主键自动增长的设置
1、把主键定义为自动增长标识符类型
在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:
create table customers(id int auto_increment primary key not null, name varchar(15));
insert into customers(name) values("name1"),("nam ......
Mysql初始化root密码和允许远程访问
mysql默认root用户没有密码,输入mysql –u root 进入mysql
1、初始化root密码
进入mysql数据库
1
mysql>update user set password=PASSWORD(‘123456’) where User='root';
2、允许mysql远程访问,可以使用以下三种方式:
a、改表。
1
mysql -u root – ......
关于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可以提交当前事务 ......
mysql event (用来实现定时任务)。mysql
从
5.1.16
开始拥有的新功能。
下面我写一个简单的示例。
先创建数据库和两个表:
drop database dep;
create database dep;
use dep;
create table aa
(id int AUTO_INCREMENT primary key,
remark varchar(20)
);
create table bb
(id int AUTO_INCREMENT primary k ......
来源: ChinaUnix博客 日期: 2008.04.28 12:29 (共有0条评论) 我要评论
是用mysql的时候,字符编码是个大问题,我一直使用utf8的编码,基本上没什么大问题,就是每次启动mysql的时候都需要设置一下,mysql,时间长了,也怪麻烦的,在网上搜了一下,发现下面的方法能完全解决这个问题,当然如果是自己编译的my ......