用什么语句得到最后注册ID呀? $lastid = $db->result($db->query("SELECT userid FROM members",$db),0,login_id); 用这个查询到的怎么老是表中排在最上面的那个ID呀? 而我的新注册的ID是往下排的!ID的序号是在增大的~
估计是我写的那个MSSQL的类有问题~~SQL查询复杂点就抱错! Execute SQL: Query(SELECT Max(name) FROM member OEDER BY exp LIMIT 5,) failed.
(1)数据记录筛选: select * from 数据表 where 字段名=字段值 order by 字段名 [desc] select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc] select top 10 * from 数据表 where 字段名 order by 字段名 [desc] select * from 数据表 where 字段名 in ('值1','值2','值3') select * from 数据表 where 字段名 between 值1 and 值2 (2) 更新数据记录: update 数据表 set 字段名=字段值 where 条件表达式 update 数据表 set 字段1=值1,字段2=值2 字段n=值n where 条件表达式 (3) 删除数据记录: delete from 数据表 where 条件表达式 delete from 数据表(将数据表所有记录删除) (4) 添加数据记录: insert into 数据表 (字段1,字段2,字段3) values (值1,值2,值3) insert into 目标数据表 select * from 源数据表(把源数据表的记录添加到目标数据表)" response.Write " (5) 数据表的建立和删除: Create TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例: Create TABLE tab01(name varchar(50),datetime default now()) 例 ACCESS表的建立 strsql = "create table tblactiveuser"&_ "(ip varchar(30) not null, "&_ "author_id integer, "&_ "login datetime default now(),"&_ "active datetime default now(), "&_ "os varchar(15), "&_ "Browser varchar(15), "&_ "hide integer default 0, "&_ "strwhere varchar(30) ,"&_ "primary key (ip))" objconn.execute(strsql) Drop TABLE 数据表名称 (永久性删除一个数据表) (6)更改表格: Alter TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法)。 例: Alter TABLE distributors ADD COLUMN address VARCHAR(30); 向表中增加一个 VARCHAR 列 alter table member add column int default 0 增加一个长整形的列,默认值为0 bit 代表"是否"类型 对现存列改名:Alter TABLE distributors RENAME COLUMN address TO city; 对现存表改名:Alter TABLE distributors RENAME TO suppliers; 更改列类型: Alter TABLE table_name MODIFY column_name datatype Alter TABLE table_name CHANGE column_name new_column_name datatype CHANGE 还可以一起改列名 Alter TABLE table_name ADD PRIMARY KEY (column_name)说明:更改表得的定义把某个栏位设为主键。 Alter TABLE table_name Drop PRIMARY KEY (column_name)说明:把主键的定义删除。 (7)、建立索引: Create INDEX index_name ON table_name (column_name) 说明:对某个表格的栏位建立索引以增加查询时的速度。 (8) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*¦字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql) 用 rs("别名") 获取统的计值,其它函数运用同上。 (9) 记录集对象的方法: rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录 smallint 16 位元的整数。 interger 32 位元的整数。 decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。 float 32位元的实数。 double64位元的实数。 char(n) n 长度的字串,n不能超过 254。 varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。 graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。 vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000。 date 包含了 年份、月份、日期。time 包含了 小时、分钟、秒。timestamp 包含了 年、月、日、时、分、秒、千分之一秒。