两种SQL语句 效率问题
情况是一张表(T)内,每条记录有一个类型字段,当按类型字段来分类查询并分页处理时
(表T内的类型是指向另一张类型表的一个ID值)
我想到了两种方式;
环境:PHP+MYSQL
1、PHP 先执行一条查询得到指定类型的记录条, 再执行一次查询 获取所有指定类型的记录(MYSQL按分页返回)
SQL code:
--查询类型ID 为 3的所有记录的条数
select count(*) from pstbl where pstbl.typeid=3;
-- 返回分页第2页的内容(20)条
select * from pstbl where pstbl.typeid =3 limit 1,20;
2、PHP 只执行一条查询语句,每条记录里面包含着总记录条数
SQL code:
--查询类型ID 为 3的所有记录带条数, 且返回分页第2页的内容(20)条
select ps.*,(select count(*) from pstbl where pstbl.typeid=3) as total
from pstbl as ps where ps.typeid=3 limit 1,20;
不晓得这两种方式对整体效率有何影响 就是分开多条执行好一些呢,还是复合执行一次完成好些
因为分开时,语句比较简单,连起来查询时语句较复杂,会不会执行时间过长
用第2种的话,我实际运用上还要加上查询另一张ID,同时考虑到尽量找相临的一种类型,就说当指定的类型ID不存在,
或者未指定就自动返回相临的一种类型
实际上运用的语句 示例
SQL code
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://ww
相关问答:
本人c#新手 可是要求要用c# ,sql2000开发c/s的工作流,一头雾水,请大家帮忙帮忙,给点思路,说的约具体越好,我也好往那个方面去学习
http://www.hxzi.com/view/61402.html
B/S版的,基本思想应该差不多的。。 ......
PB中开发的。
DateTime startTime=DateTime(em_1.Text)
DateTime endTime=DateTime(em_2.Text)
string sql
sql = dw_1.GetSQLSelect()+"Where (StartTime> '"+startTime+&q ......
表中按datadate,tradeid为主键,也就是说tradeid会重复出现在不同天中,同一天的tradeid是不同的。现在我希望取一段时间范围内不重复的tradeid,且只要每个tradeid的最后一次出现的那条。sql语句该怎么写
: ......
表A
Sup_code st_sup_code buy_code buy_code1
1001 400 &nbs ......
我想使用Sql编个小程序,就是判定一个字符串出现了几次指定字符;
例如在string型“6+4+8+2”中,我需要判定出现了几个“+”;并且实现
if (出现3次)
then
………………(引发事件);
......