Как мне найти количество столбцов до первого появления LIKE? - PullRequest
1 голос
/ 10 сентября 2010

Сортировка по столбцу Y

   X       Y        Z 
------------------------
|      |     A1  |     |
------------------------
|      |     B2  |     |
------------------------
|      |     C3  |     |
------------------------ -----Page 1
|      |     D3  |     |
------------------------
|      |     E4  |     |
------------------------
|      |     F5  |     |
------------------------ -----Page 2
|      |     G5  |     |
------------------------
|      |     F6  |     |
------------------------
|      |     G7  |     | -----Page 3  

У пользователя есть возможность ввести поиск по шаблону, то есть - "%5"

Я хочу вернуться на страницу пользователя 2 (какпервое появление чего-то, за которым следует 5.) ИЛИ узнайте, сколько строк перед столбцом, содержащим F5

(SQLite с C API)

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

Предполагая, что MSSQL, вот обходной путь такого рода шагов по логике ... дайте мне знать, если это не поможет:

declare @perPage int
declare @searchString varchar(20)
declare @countBefore int
declare @firstMatch varchar(20)
declare @resultPage int

set @perPage = 3
set @searchString = '%5'

select @firstMatch = (select top 1 y from myTable where y like @searchString order by y)
select @countBefore = (select count(*) from myTable where y < @firstMatch)
select @resultPage = (@countBefore / @perPage) + 1
1 голос
/ 10 сентября 2010

При условии MySQL, результирующий набор, упорядоченный по X и X, уникален:

SELECT  COUNT(*)
FROM    mytable
WHERE   X <
        (
        SELECT  X
        FROM    mytable
        WHERE   y LIKE '%5'
        ORDER BY
                X
        LIMIT 1
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...