Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez X lignes à partir de la ligne Y

Si nous fournissons un compte négatif dans le Substring_Index() fonction, il comptera de droite à gauche et nous rapportera la sous-chaîne à droite du délimiteur.

Donc, avec quelques calculs, pour obtenir la deuxième (2) à la quatrième (4) ligne :

SELECT 
  SUBSTRING_INDEX(
      SUBSTRING_INDEX(log_data, '\n', 4), 
      '\n',
      -(4 - 2 + 1)
      )

De même, pour les lignes 15 à 26, ce sera :

SELECT 
  SUBSTRING_INDEX(
      SUBSTRING_INDEX(log_data, '\n', 26), 
      '\n',
      -(26 - 15 + 1)
      )

Formule générale pour un p ligne vers q la ligne serait :

SELECT 
  SUBSTRING_INDEX(
      SUBSTRING_INDEX(log_data, '\n', q), 
      '\n',
      -(q - p + 1)
      )