Mysql
 sql >> Database >  >> RDS >> Mysql

Seleziona le righe X che iniziano alla riga Y

Se forniamo un conteggio negativo nel Substring_Index() funzione, conterà da destra a sinistra e ci porterà la sottostringa a destra del delimitatore.

Quindi, con un po' di matematica, per ottenere dalla seconda (2) alla quarta (4) riga:

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

Allo stesso modo, per le righe 15 - 26 sarà:

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

Formula generale per un p riga a q la riga sarebbe:

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