簡體   English   中英

如何在DESC MySQL中選擇數字5-10

[英]How to choose number 5-10 in DESC MySQL

所以我想做2個while循環,因為我有2個表。 在第一個表格中,我想擁有前5個ID

`$sql = "SELECT * FROM link WHERE `userid`= $uid ORDER by clicks DESC LIMIT 5";`

不要介意語句中的變量是不安全的,因此稍后我將使用准備好的語句。 但是,仍然應該在第一個ID給出前5個ID,而在第二個ID給出5-10 ID。 第二個$ sql應該是什么樣子?

您需要像這樣使用OFFSET:

SELECT * FROM link WHERE `userid`= $uid ORDER by clicks DESC LIMIT 5 OFFSET 5

第二個SQL看起來像這樣:

<?php
    ...
    $sql2 = "SELECT * FROM link WHERE userid = :uid ORDER by clicks DESC LIMIT 5 OFFSET 5";

    $stmt = $pdo->prepare(sql2);

    $stmt->execute(['uid ' => $uid]);
    ...
?>

試試這個。

$sql = "SELECT * FROM link WHERE `userid`= '$uid' ORDER by clicks DESC LIMIT 5, 5";

這將從記錄編號6開始給出5條記錄(記錄編號5將不會出現在結果中)

只需對1個查詢使用2個循環。 不需要其他查詢。

例如在for循環中:

<?php
    $results = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n");

    for($i=0; $i<5; $i++) {
        echo $results[$i];
    }

    echo " / ";

    for ($i=5; $i<10; $i++) {
        echo $results[$i];
    }
    // yields: abcde / fghij
?>

while循環中的相同樣本:

<?php
    $results = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n");
    $i = 0;
    while($i < 5) {
        echo $results[$i];
        $i++;
    } 

    echo " / "; 

    while($i < 10) {
        echo $results[$i];
        $i++;
    } 
    // yields: abcde / fghij
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM