最近遇到一个业务需求, 需要查找满足条件且连续3出现条以上的记录。
成都创新互联公司于2013年创立,先为类乌齐等服务建站,类乌齐等地企业,进行企业商务咨询服务。为类乌齐企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
表结构:
CREATE TABLE `cdb_labels` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL DEFAULT '0' COMMENT '标签类型:1喜欢异性类型,2擅长话题',
`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '标签内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='标签内容';
1
2
3
4
5
6
7
8
所有数据: SELECT * FROM cdb_labels WHERE type = 1;
可以用 CONCAT把查询语言与变量连接起来再执行,参考如下代码。
DELIMITER //
CREATE PROCEDURE GetItems()
BEGIN
SELECT @total := count(id) FROM items;
SET @sql = CONCAT('SELECT id, title FROM items LIMIT 0,', CEIL(@toal/2));
PREPARE stmt FROM @sql;
EXECUTE stmt;
END //
DELIMITER ;
希望这个思路对你有帮助,可以将limit后面设置为变量!
$total=0; //预设变量,用于存放累加结果
$sql="查询语句";
$sql=mysql_query($sql);
while($as=mysql_fetch_array($sql)){
$total=$total+$as[0];
}
还有一种办法更好,假如你要累加的字段名为 price, 则:
$sql="select sum(price) as total from 表名 where 条件";
$sql=mysql_query($sql);
$as=mysql_fetch_array($sql);
$as['total']..... //这里就是你想要的累加结果,直接让 mysql 做了,php里你就省去循环取值,估计效率好些。