从表中选择一系列行

时间:2012-04-27 08:46:24

标签: php mysql sql

我是PHP和MySQL的新手。我正在尝试编写一个PHP脚本,我正在坚持从表中选择行

效果很好的代码是:

$q_pages = $wpdb -> prefix . 'q_pages_table';

$q_kws = $wpdb->prefix . 'q_kws_table';

$sql = 'SELECT a1.post_id, a1.kw_id, a2.kw_name ' +
       'FROM ' . $q_pages . ' as a1 ' +
       'LEFT JOIN ' . $q_kws . ' as a2 ON (a1.kw_id = a2.id)' + 
       'WHERE a1.draft_id = 4';

第三个命令是选择并连接变量$ q_kws中的列到变量$ q_pages,如果2个表中的kw_id和id之间存在匹配,并且当draft_id = 4

由于$ sql变量中有大量行(3000行),我想将$ sql分解为3个变量,每个变量包含1000行,以便稍后我可以单独处理每个变量。

有什么建议吗?

谢谢

3 个答案:

答案 0 :(得分:1)

要选择特定范围,您必须使用limit [start number], [# to select],因此在您的情况下,您需要选择前1000行,如:

select [your select stuff]
limit 0, 1000

第二个是:

select [your select stuff]
limit 1000, 1000

,第三个是

select [your select stuff]
limit 2000, 1000

限制中的第一个数字是它开始的行,第二个数字是将被选中的行之后的行数

答案 1 :(得分:0)

You can use limit in the query to retrieve a specific number of rows .

something like 
$start=0;
$end=1000;

$sql = 'SELECT a1.post_id, a1.kw_id, a2.kw_name ' +
       'FROM ' . $q_pages . ' as a1 ' +
       'LEFT JOIN ' . $q_kws . ' as a2 ON (a1.kw_id = a2.id)' + 
       'WHERE a1.draft_id = 4 limit ".$start.",".$end."'; 

答案 2 :(得分:0)

例如:

select * from table where rownum < 1000