2013-01-02 1 views
1

Je comprends comment fonctionne LIMIT, mais je veux savoir s'il existe un moyen de définir le point de départ d'une requête de base de données avant LIMIT. Est-ce possible? Et ai-je un sens avec ça?Existe-t-il un moyen de spécifier un point de départ pour une requête de base de données SELECT?

+0

@ Wordman peut vous expliquer clairement ... – Techy

+0

Eh bien, Je voudrais spécifier un point de départ dans le tableau pour commencer à compter de ... est-ce que cela a plus de sens? – wordman

+2

@wordman 'indique à la requête où commencer à sélectionner AVANT qu'il arrive à LIMITER pourquoi? Il est préférable d'inclure des enregistrements d'échantillons et le résultat souhaité sur votre question pour le rendre plus clair pour les lecteurs. –

Répondre

5

LIMIT accepte deux valeurs, le point de départ et la durée.

MISE À JOUR 1

+0

que voulez-vous dire par durée? – codingbiz

+0

@codingbiz * combien d'enregistrements afficher *. voir le lien. –

0

je vais vous donner une démo apprendre de cette

SELECT * FROM `your_table` LIMIT 0, 10 

Cela affichera les 10 premiers résultats de la base de données.

0

Je ne sais pas si j'ai bien compris, mais je vais essayer. Vous pouvez vous intéresser à l'utilisation de la liaison de variables dans votre requête, de cette façon, votre limite est définie avec des variables. Exemple de code en utilisant PDO ci-dessous:

class englishTable { 
    private $selectAllWithLimit; 

    public function __construct($db) { 
    $this->selectWithLimit = $db->prepare('SELECT id, english, french FROM english LIMIT :start, :limit'); 

    public function selectWithLimit($start, $limit) { 
    $this->selectWithLimit->bindValue(':start', $start, PDO::PARAM_INT); 
    $this->selectWithLimit->bindValue(':limit', $limit, PDO::PARAM_INT); 
    $this->selectWithLimit->execute(); 
    return $this->selectWithLimit->fetchAll(); 
    } 
} 

$start = 5; 
$limit = 7; 
$words = $englishTable->selectWithLimit($start, $limit); 

J'espère que cela aide, bonne année ami.

+0

J'apprécie ça! Cependant, je demande si le point de départ peut être défini avant que nous obtenions de «LIMITER»? – wordman

+0

Je réalise que je n'ai pas compris. La clause limite prend 1 0r 2 paramètres. Si vous définissez cela dans une variable (comme c'est généralement fait), et que vous définissez vos variables avant d'exécuter le sql, de cette manière ne seriez-vous pas d'accord que vos paramètres de limite sont définis avant que la limite est appelée? – stefgosselin

+0

Cet article était exploratoire mais il m'a conduit à deux solutions, dont l'une est marquée comme la réponse ci-dessus. Je demandais quelque chose de différent qui, de toute évidence, causait beaucoup de confusion, mais il a involontairement mené à deux solutions pour moi. Merci beaucoup! – wordman

2
SELECT * FROM MyTable LIMIT [startpoint], [row_count] 

Le point de départ est facultatif et est la valeur par défaut de la première ligne. Spécification du point de départ Saute les n-temps record et commence à compter à [startpoint]

SELECT * FROM MyTable LIMIT 5, 15 

qui affiche 15 enregistrements à partir du 5 enregistrement.

SELECT * FROM MyTable LIMIT 7 est équivalent à SELECT * FROM MyTable LIMIT 0,7

4
SELECT * FROM `table` LIMIT [offset], [count] 

Donc, dire que vous aviez 4 pages (1, 2, 3 et 4), et je voulais montrer 10 résultats par page que vous feriez quelque chose comme:

page_1 (0 - 10)

SELECT * FROM `table` LIMIT 0, 10 

page_2 (10 - 20)

SELECT * FROM `table` LIMIT 10, 10 

page_3 (20 - 30)

SELECT * FROM `table` LIMIT 20, 10 

page_4 (30 - 40)

SELECT * FROM `table` LIMIT 30, 10 
+0

maintenant c'est intrigant et presque exactement ce que je cherchais plus tôt. J'ai besoin d'éclaircissements sur les choses 'page_1 >>'. – wordman

+0

Désolé, c'était juste pour montrer "quelle page nous étions". Je l'ai édité pour être plus clair. – Supericy

+0

Ok ... ça a plus de sens ... laisse-moi mâcher ça ... merci! – wordman

Questions connexes