经典sqlite语句:
6、从json字段中获取某些数据或作为条件:此方法需要sqlite3.24或更高版本,存储字段最好为JSON,我目前用的text也没有问题
select * from 表 where (json_extract(json_, "$.notice") or json_extract(json_, "$.err"))
注:select * from ssc where json_extract(json_, '$.wg')='1' 等号后面的值也要与json里的保持一致,不然有可能查不到数据
5、将unix时间戳转化为日期格式
select date(strftime('%s', '2012-07-20'), 'unixepoch')
4、将时间转化为unix时间戳格式,方便进行索引
select strftime('%s', '2012-07-01');
3、将日期字段转换为当月:2012-07-01
select date(f_字段, 'start of month') from t_表;
select substr(f_字段, 1, 7 ) || '-01' as dd ;
2、||相当于mysql中的concat函数:
select f_id || '-01' from t_表;
select substr('2012-07-05', 1, 7 ) || '-01' as dd ;
||相当于mysql中的concat,但谁都不会想到。
1、group_concat
select group_concat(f_id) from t_表;
注:某些版本比较低的PDO或者sqlite版本不支持此写法,但此写法效率挺高的。
快速导入导出(备份整个数据库):
导出:sqlite.exe tt.sqlite3 ".dump" > dump_backup;
导入:sqlite.exe tt.sqlite3 < dump_backup;
GUI工具下载
支持中文界面:https://sqlitebrowser.org/dl/
只有英文界面:占内存最小、打开速度极快,也不容易抛错:https://www.yunqa.de/delphi/apps/sqlitespy/index
错误相关:
1、bind or column index out of range
这个错误可能出现在sql语句的绑定中使用了引号把绑定变量引起来,其实在sql语句中关于要绑定的变量是不需要引号的。 |