日期:2014-05-16  浏览次数:20692 次

mysql found_rows()的疑问
第一次接触mysql,问个问题。
SELECT SQL_CALC_FOUND_ROWS AccountID,CampaignID FROM t WHERE ID = 10984 LIMIT 10;
SELECT FOUND_ROWS() 返回291,但是t表中是没有一条数据的。这是什么情况?

SELECT SQL_CALC_FOUND_ROWS AccountID,CampaignID FROM t1 WHERE ID = 10984 LIMIT 10;
SELECT FOUND_ROWS() 返回15,但是t1表中符合条件的记录是174条。这是什么情况?

SELECT A.ID,B.LG FROM TABLE A LEFT JOIN TABLE1 B ON A.ID = B.ID 
WHERE A.NUM >= ? AND A.NUM <=? AND B.NUM >=? LIMIT ?,? ;然后执行这个语句时替换占位符,连个红色?的值是一样的,怎么写这个替换?

在线等解答,谢谢。

------解决方案--------------------


set @asql=concat('SELECT A.ID,B.LG FROM TABLE A LEFT JOIN TABLE1 B ON A.ID = B.ID
WHERE A.NUM >= ',?,' AND A.NUM <=',?,' AND B.NUM >=',?,' LIMIT ',?,',',? );
prepare stml from @asql;
execute stml

------解决方案--------------------
你确定表里没数据?


SELECT count(*) FROM t WHERE ID = 10984确实是空?