$sql = 'SELECT * FROM t1
RIGHT OUTER JOIN t2 ON t2.wid = t1.wid
LIMIT ' . $number . ' OFFSET 678';
当我用手改变这个偏移时,它会针对我的数据库的不同值运行...我怎么能不用手改变这个偏移?有人告诉我,我可以做到没有抵消,但他没有告诉我怎么样......有人能帮忙吗?我有一个多月的时间来处理这个问题:'(:'(:'(
答案 0 :(得分:1)
您是否尝试过将LIMIT与两个参数一起使用。第一个是你的起点,第二个是你的偏差。例如:
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
使其适应示例:
$sql = 'SELECT * FROM t1
RIGHT OUTER JOIN t2 ON t2.wid = t1.wid
LIMIT ' . $number . ', 678';
也许请MySQL: Select获取更多帮助。
答案 1 :(得分:0)
$per_page = 10;
$current_page = read_current_page(); // 0,1,2...
$start = $current_page*$per_page;
$sql = 'SELECT * FROM t1
RIGHT OUTER JOIN t2 ON t2.wid = t1.wid
LIMIT ' . $start . ','. $per_page;
save_current_page(++$current_page);
它应该是那样的。 read_current_page()应该以某种方式从文件,数据库或您决定保留该值的位置读取值。所以,你需要一些地方把它存储在电话之间。
然后您创建查询,最后您必须更新该计数器的值。添加一些逻辑来重置它,你需要它的方式。但重点是你必须将它存储在代码之外的某个地方......因为在执行调用之后所有的值都会丢失。