Если это необработанные данные, то, как вы упомянули, проще всего извлечь их, используя регулярное выражение.
Возможно, вы захотите что-то вроде этого (в PHP):
# Get this from the database
$sql_results = array(
'115X0101-115X0200',
'115X0101-115X0200',
'115X0101-115X0200',
);
foreach($sql_results as $row)
{
preg_match_all('/\d{4}/', $row, $matches);
#200 #101
echo intval($matches[0][1]) - intval($matches[0][0]) + 1;
}
Для каждой строки preg_match найдет группы из 4 цифр (\d{4}
) и поместит их в $matches
(используйте var_dump($matches)
, чтобы увидеть, как это выглядит).
Подробнее о Regex
Предел SQL
Примечание: если вы хотите получить только 20 результатов одновременно, вам нужно будет SELECT * FROM table LIMIT 20
при запросе к базе данных. Чтобы получить строки 31-50, вы должны использовать LIMIT 30, 20
, что означает смещение на 30, а затем получить 20 строк.