2012-04-27 2 views
1

Я очень новичок в PHP и MySQL. Я пытаюсь написать скрипт, и я прилипаемость при выборе строк из таблицыВыберите диапазон строк из таблицы

кода, который работает велик:

$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, если есть совпадение между kw_id и id в двух таблицах, а также когда draft_id = 4

Из-за большого количества строк в переменной $ sql (3000 строк), я хочу разбить от $ sql до 3 переменных, каждая переменная содержит 1000 строк, так что позже я могу обрабатывать каждую переменную отдельно.

Есть ли предложение?

Спасибо

ответ

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."'; 
+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 

Первое число в пределе это строка, что она начинается, а второе число это количество строк после того, как и в том числе эту строку, который будет выбран

+0

Привет, Джейк, Большое вам спасибо за ваш ответ так быстро. Я все еще не уверен, как изменить свой код. –

+0

Ваш SQL-оператор в порядке, вам просто нужно иметь три переменные, которые все те же, что и переменная '$ sql', которые у вас есть сейчас, но добавьте элементы« limit », которые я упомянул в конце каждого из них. – Jake