2011-12-22 2 views
1

Je souhaite obtenir le numéro de ligne de l'enregistrement d'origine dans la base de données. Est-il possible de récupérer le numéro de ligne d'origine d'un enregistrement dans mysql? Supposons que ma déclaration estreturn mySQL numéro de ligne d'origine

select course_id from course where subject='finance'; 

il peut y avoir plusieurs enregistrements pour cette requête. Supposons qu'ils proviennent des numéros de ligne 4, 5, 7, 9 et 10. Comment puis-je récupérer ces row_numbers dans ma requête?

+0

Il n'existe aucun "numéro de ligne" dans la plupart des bases de données SQL. Si vous devez suivre l'ordre dans lequel les lignes sont ajoutées, vous devez le faire vous-même en affectant un ID séquentiel ou une colonne de date définie lorsque l'insertion est terminée. –

+0

$ num = $ mysql_num_rows ($ res); pour ($ i = 0; $ i <= $ num; $ i ++) si (($ i == 4) ou ($ i == 5) ou ($ i == 7) ou ($ i == 9) ou ($ i == 10)) $ arr []. = $ Row ['cours_id']; J'ai suposé que vous récupériez vos données avant! – B4NZ41

+0

A-t-il répondu à votre question @codingNewbie ou avez-vous besoin de plus d'aide? –

Répondre

1

Vérifier: With MySQL, how can I generate a column containing the record index in a table?

SELECT c.course_id, 
     @curRow := @curRow + 1 AS row_number 
FROM course c 
JOIN (SELECT @curRow := 0) r; 

Prenez note cependant, cela est artificiel comme le seul véritable « numéro de ligne » serait votre propre ID primaire, et chaque méthode artificielle va changer le numéro de ligne lorsque vous modifiez la ORDER clause