Как запросить первые 10 строк и в следующий раз запросить другие 10 строк из таблицы

Используйте String.Format () с помощью спецификатора формата . Я думаю, вы хотите {0: F20} или так.

string formatted = String.Format("{0:F20}", value);

21
задан Praveen Kumar Purushothaman 24 August 2017 в 10:21
поделиться

7 ответов

Просто используйте предложение LIMIT.

SELECT * FROM `msgtable` WHERE `cdate`='18/07/2012' LIMIT 10

И со следующего звонка вы можете сделать это следующим образом:

SELECT * FROM `msgtable` WHERE `cdate`='18/07/2012' LIMIT 10 OFFSET 10

Больше информации о OFFSET и LIMIT на LIMIT и OFFSET .

54
ответ дан Praveen Kumar Purushothaman 24 August 2017 в 10:21
поделиться

для первых 10 строк ...

SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT 0,10

для следующих 10 строк

SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT 10,10
1
ответ дан Ankit Kumar 24 August 2017 в 10:21
поделиться
SET @rownum = 0; 
SELECT sub.*, sub.rank as Rank
FROM
(
   SELECT *,  (@rownum := @rownum + 1) as rank
   FROM msgtable 
   WHERE cdate = '18/07/2012'
) sub
WHERE rank BETWEEN ((@PageNum - 1) * @PageSize + 1)
  AND (@PageNum * @PageSize)

Каждый раз, когда вы передаете параметры @PageNum и @PageSize, чтобы получить конкретную страницу, которую вы хотите. Например, первые 10 строк будут @PageNum = 1 and @PageSize = 10

2
ответ дан Mahmoud Gamal 24 August 2017 в 10:21
поделиться
<html>
<head>
    <title>Pagination</title>
</head>
<body>
<?php 

    $conn = mysqli_connect('localhost','root','','northwind');
    $data_per_page = 10;
    $select = "SELECT * FROM `customers`";  
    $select_run = mysqli_query($conn, $select);
    $records = mysqli_num_rows($select_run);
    // while ($result = mysqli_fetch_array($select_run)) {      
    //     echo $result['CompanyName'] . '<br>';        
    // }
    // $records;
    echo "<br>";
    $no_of_page = ceil($records / $data_per_page);
    if(!isset([110]GET['page'])){
        $page = 1;
    }else{
        $page = [110]GET['page'];
    }
    $page_limit_data = ($page - 1) * 10;
    $select = "SELECT * FROM customers LIMIT " . $page_limit_data . ',' . $data_per_page ;
    $select_run = mysqli_query($conn, $select);
    while ($row_select = mysqli_fetch_array($select_run)){
        echo $row_select['CompanyName'] . '<br>' ;
    }
    for($page=1; $page<= $no_of_page; $page++){ 
        echo "<a href='pagination.php?page=$page'> $page" . ', ';   
    }
?>
<br>
<h1> Testing Limit Functions Here  </h1>
<?php 
$limit = "SELECT CompanyName From customers LIMIT 10 OFFSET 5";
$limit_run = mysqli_query($conn , $limit);
while($limit_result = mysqli_fetch_array($limit_run)){
    echo $limit_result['CompanyName'] . '<br>';
}
?>
</body>
</html>
2
ответ дан Raj 24 August 2017 в 10:21
поделиться

Вы можете использовать postgresql Cursors

BEGIN;
DECLARE C CURSOR FOR where * FROM msgtable where cdate='18/07/2012';

Затем используйте

FETCH 10 FROM C;

, чтобы получить 10 строк.

Финский с

COMMIT;

, чтобы закрыть курсор.

Но если вам нужно сделать запрос в разных процессах, лучше использовать LIMIT и OFFSET, как предложено @Praveen Kumar

0
ответ дан AlbertFerras 24 August 2017 в 10:21
поделиться

Хорошо. Поэтому я думаю, что вам просто нужно реализовать разбиение на страницы.

$perPage = 10;

$pageNo = 

Хорошо. Поэтому я думаю, что вам просто нужно реализовать разбиение на страницы.

[110]

Теперь найдите общее количество строк в базе данных.

$totalRows = Get By applying sql query;

$pages = ceil($totalRows/$perPage);    

$offset = ($pageNo - 1) * $perPage + 1

$sql = "SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT ".$offset." ,".$perPage
GET['page'];

Теперь найдите общее количество строк в базе данных.

$totalRows = Get By applying sql query;

$pages = ceil($totalRows/$perPage);    

$offset = ($pageNo - 1) * $perPage + 1

$sql = "SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT ".$offset." ,".$perPage
0
ответ дан Chanda Korat 24 August 2017 в 10:21
поделиться

LIMIT limit OFFSET offset будет работать.

Но вам нужно стабильное ORDER BY предложение , или значения могут быть упорядочены по-разному для следующего вызова (например, после любой записи в таблицу).

SELECT *
FROM   msgtable
WHERE  cdate = '2012-07-18'
ORDER  BY msgtable_id  -- or whatever is stable 
LIMIT  10
OFFSET 50;  -- to skip to page 6

Используйте соответствующий стандарту стиль даты ( ISO 8601 в моем примере ), который работает независимо от ваших настроек локали.

Пейджинг будет по-прежнему смещаться, если соответствующие строки будут вставлены, удалены или изменены в соответствующих столбцах. Это должно.

Чтобы избежать этого сдвига или повысить производительность при работе с большими таблицами, используйте более умные стратегии разбиения на страницы :

11
ответ дан Community 24 August 2017 в 10:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: