У меня есть следующий запрос sql, который отлично работает для разбиения на страницы
$tsql = "SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY ClientID)
AS rowID, Status, FirstName, LastName FROM Client)
AS TEMP
WHERE (rowID BETWEEN ? AND ? + 1)";
Когда я добавляю еще одно условие (Status! = -1) в предложение where, оно не показывает мне одинаковое количество строк на каждой странице.
$tsql = "SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY ClientID)
AS rowID, Status, FirstName, LastName FROM Client)
AS TEMP
WHERE (rowID BETWEEN ? AND ? + 1) AND (Status != -1)";
Кто-нибудь знает, как написать этот запрос, чтобы получить одинаковое количество строк на каждой странице. Спасибо
1
User27
11 Янв 2017 в 08:29
1 ответ
Лучший ответ
Вам нужно добавить условие (Status! = -1) во внутренний запрос выбора. Попробуйте этот скрипт ниже,
$tsql = "SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY ClientID)
AS rowID, Status, FirstName, LastName FROM Client
WHERE (Status != -1) )
AS TEMP
WHERE (rowID BETWEEN ? AND ? + 1)
ORDER BY rowID";
0
Abdul Rasheed
11 Янв 2017 в 09:12
Работал. Большое спасибо, это было слишком просто.
– User27
11 Янв 2017 в 08:41
Теперь, где я могу добавить предложение ORDER BY, пожалуйста
– User27
11 Янв 2017 в 08:56
Вы можете использовать ORDER BY rowID в последней части вашего запроса. Ответьте доработанный плз чк.
– Abdul Rasheed
11 Янв 2017 в 09:13
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
FROM Client WHERE Status != -1