Я использую Oracle 10g Express Edition. Я связал это с codeigniter.
Я хочу получить 10 записей на странице, чтобы показать записи.
Вот таблица tbl_language: —
LANGUAGE_ID | LANGUAGE_TITLE | LANGUAGE_ADD_DATE | LANGUAGE_STATUS |
=====================================================================
1 | Hindi | 18-FEB-17 | 1 |
2 | English | 18-FEB-17 | 1 |
3 | Bangla | 18-FEB-17 | 1 |
Теперь я использую следующий запрос
"SELECT * FROM
(SELECT fetch.*, rownum rnum FROM
(SELECT * FROM tbl_language
WHERE language_id > 0
ORDER BY TO_CHAR(language_add_date, 'YYYY-MM-DD HH24:MI:SS')
DESC)
fetch)"
Это дает мне данные следующим образом:
LANGUAGE_ID | LANGUAGE_TITLE | LANGUAGE_ADD_DATE | LANGUAGE_STATUS | RNUM
===============================================================================
3 | Bangla | 18-FEB-17 | 1 | 1
2 | English | 18-FEB-17 | 1 | 2
1 | Hindi | 18-FEB-17 | 1 | 3
Теперь я модифицирую запрос, выбрав определенное количество строк (что-то вроде использования лимита) —
"SELECT * FROM
(SELECT fetch.*, rownum rnum FROM
(SELECT * FROM tbl_language WHERE language_id > 0 ORDER BY TO_CHAR(language_add_date, 'YYYY-MM-DD HH24:MI:SS') DESC)
fetch WHERE rownum >= 1 AND rownum < 2) "
Возвращает один ряд.
Затем я изменил запрос
"SELECT * FROM
(SELECT fetch.*, rownum rnum FROM
(SELECT * FROM tbl_language WHERE language_id > 0 ORDER BY TO_CHAR(language_add_date, 'YYYY-MM-DD HH24:MI:SS') DESC)
fetch WHERE rownum >= 2 AND rownum < 3) "
Он вернул пустые результаты. Что я делаю неправильно?
Вот. Ответ в вашем посте:
"SELECT * FROM
(SELECT fetch.*, rownum rnum FROM
(SELECT * FROM tbl_language WHERE language_id > 0 ORDER BY TO_CHAR(language_add_date, 'YYYY-MM-DD HH24:MI:SS') DESC)
fetch WHERE rownum >= 1 AND rownum < 11) "
Я в основном изменил диапазон rownum (то есть, [1,10]) в вашем состоянии.
Других решений пока нет …