我正在使用SQLite数据库.我的表有一个名为"密码"的文本列.之前检索用于执行简单的"select*from myTable"查询的值.但现在的要求是,如果密码值不是NULL,那么我需要将其显示为"是"或否则为"否".它是这样的: -
select * from myTable
if Password != NULL then Password = 'Yes'
else Password = 'No'
Run Code Online (Sandbox Code Playgroud)
我搜索了很多关于这个,但我没有得到任何正确的链接或例子.任何帮助或建议将非常感激.
-sattu
以下是我用于从具有数百万条记录的数据库中获取固定数量记录的查询: -
select * from myTable LIMIT 100 OFFSET 0
Run Code Online (Sandbox Code Playgroud)
我观察到的是,如果偏移量非常高,比如说90000,那么查询执行需要更多时间.以下是具有不同偏移量的2个查询之间的时差:
select * from myTable LIMIT 100 OFFSET 0 //Execution Time is less than 1sec
select * from myTable LIMIT 100 OFFSET 95000 //Execution Time is almost 15secs
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我如何优化此查询?我的意思是,对于我希望从任何OFFSET检索的任何数量的记录,查询执行时间应该相同且快速.
新增: - 实际情况是我的数据库有超过100万条记录.但由于它是一个嵌入式设备,我不能做"select*from myTable",然后从查询中获取所有记录.我的设备崩溃了.相反,我所做的是按照上面提到的查询逐批获取记录(批量大小= 100或1000条记录).但正如我所提到的,随着偏移的增加,它变得缓慢.所以,我的最终目标是我想从数据库中读取所有记录.但由于我无法在一次执行中获取所有记录,我需要一些其他有效的方法来实现这一点.
sqlite ×2