我希望这些行运行FOR我的数据库的所有值

时间:2015-03-31 07:57:16

标签: mysql sql database drupal-7 outer-join

 $sql = 'SELECT * FROM t1
         RIGHT OUTER JOIN t2 ON t2.wid = t1.wid
         LIMIT ' . $number . ' OFFSET 678';

当我用手改变这个偏移时,它会针对我的数据库的不同值运行...我怎么能不用手改变这个偏移?有人告诉我,我可以做到没有抵消,但他没有告诉我怎么样......有人能帮忙吗?我有一个多月的时间来处理这个问题:'(:'(:'(

2 个答案:

答案 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()应该以某种方式从文件,数据库或您决定保留该值的位置读取值。所以,你需要一些地方把它存储在电话之间。

然后您创建查询,最后您必须更新该计数器的值。添加一些逻辑来重置它,你需要它的方式。但重点是你必须将它存储在代码之外的某个地方......因为在执行调用之后所有的值都会丢失。