我从未使用过flask,但是假设您可以发出分页/页面抛出,那么引入0-9值的查询将允许有条件的页面抛出。
例如,假设一个具有3列的 orders 表 orderdate , ordertype , orderdesc 所需的顺序是根据那些列的顺序(请参见注释),然后下面的操作将导致列的范围是0到9,从而允许检查是否有丢步现象:-
SELECT *,(
SELECT count()
FROM ORDERS
WHERE orderdate||ordertype||orderdesc < o.orderdate||o.ordertype||o.orderdesc
ORDER BY orderdate||ordertype||orderdesc
) % 10 AS orderby
FROM ORDERS AS o ORDER BY orderdate||ordertype||orderdesc
- 请注意,以上内容依赖于排序顺序,而where子句的结果相同,因此可能需要更复杂的WHERE子句。以上内容仅供参考。
用法示例
考虑以下使用中的上述示例。这将生成100行订单,并在指定范围内随机生成订单日期和订单类型,然后根据上述查询提取数据。底涂数据和提取的数据的结果显示在结果部分。
/* Create Test Environment */
DROP TABLE IF EXISTS orders;
/* Generate and load some random orders */
CREATE TABLE If NOT EXISTS orders (orderdate TEXT,ordertype TEXT,orderdesc TEXT);
WITH RECURSIVE cte1(od,ot,counter) AS
(
SELECT
datetime('now','+'||(abs(random()) % 10)||' days'),(abs(random()) % 26),1
UNION ALL SELECT
datetime('now',counter+1
FROM cte1 LIMIT 100
)
INSERT INTO orders SELECT * FROM cte1;
/* Display the resultant data */
SELECT rowid,* FROM orders;
/* Display data with generated page throw indicator */
SELECT rowid,*,(
SELECT count()
FROM ORDERS
WHERE orderdate||ordertype||orderdesc < o.orderdate||o.ordertype||o.orderdesc
ORDER BY orderdate||ordertype||orderdesc
) % 10 AS orderby
FROM ORDERS AS o ORDER BY orderdate||ordertype||orderdesc;
/* Clean up */
DROP TABLE IF EXISTS orders;
结果(部分)
核心数据(未按rowid排序(为了比较目的包括了rowid)):-
提取的带有页面抛出指示器的数据(突出显示)
- 很显然,您可能不会在第一行扔一页。
- 由于为了方便起见使用了3列的合并,因此结果可能会有些混乱,例如2似乎大于11,依此类推。
- rowid指示原始位置,因此表明数据已排序。
本文链接:https://www.f2er.com/3136126.html