标签: sqlite

sqlite是否支持select中的任何类型的IF(条件)语句

sqlite是否支持select语句中的sql函数"if"?

例如

select if( length( a ) > 4 , a , ' ') as b
from foo
Run Code Online (Sandbox Code Playgroud)

如果长度超过4个字符长,则返回a.否则它将返回''作为b

如果它确实支持select中的条件应该使用的语法是什么?

我查了 http://sqlite.org/lang_corefunc.html但我看不到它.

sql sqlite

75
推荐指数
3
解决办法
7万
查看次数

在sqlite中将int转换为real

在sqlite中返回整数值

sqlite> select totalUsers/totalBids from 
(select (select count(*) from Bids) as totalBids , 
(select count(*) from Users) as totalUsers) A;
1
Run Code Online (Sandbox Code Playgroud)

我们可以对结果进行类型转换以获得除法结果的实际值吗?

sql sqlite casting division

75
推荐指数
3
解决办法
5万
查看次数

我在哪里可以找到SQLite数据库文件或转储的例子呢?

我真的需要一个sqlite数据库文件进行研究.我在C#中创建一个应用程序,我需要一个包含许多表,字段,视图,索引,约束等的数据库.而且我不想使用sqlite命令行工具自己创建它.

所以我想可能有人可以说我在哪里可以找到这样的文件,可能是不同的应用程序或示例,甚至可以发送给我自己的数据库文件.我将不胜感激任何帮助.

sqlite

74
推荐指数
1
解决办法
7万
查看次数

sql,按列A排序,然后按列B排序

如何编写sql以便结果可以先按列A排序,而不是按列排序.如下所示:

SELECT * FROM tbl WHERE predictor ORDER by col_A and ORDER by col_B

sql sqlite select

73
推荐指数
3
解决办法
6万
查看次数

在sqlite中的ALTER COLUMN

如何在sqlite中更改列?这是在Postgresql

ALTER TABLE books_book ALTER COLUMN publication_date DROP NOT NULL;
Run Code Online (Sandbox Code Playgroud)

我相信在sqlite中根本没有ALTER COLUMN,只支持ALTER TABLE.

任何的想法?谢谢!

sqlite

73
推荐指数
4
解决办法
10万
查看次数

在ContentProvider中关闭数据库

本周我一直在学习有关ContentProvider的所有内容,并使用SQLiteOpenHelper类来管理提供程序内部数据库的创建和升级.具体来说,我一直在阅读sdk的samples目录中的NotePad示例.

现在,我可以看到SQLiteOpenHelper有一个close()方法.我知道将空闲数据库打开是不好的做法,可能导致内存泄漏等等(除非这个讨论朝着正确的方向发展).如果我在Activity中使用该类,那么我只需在onDestroy()方法中调用close(),但据我所知,ContentProvider与活动没有相同的生命周期.NotePad的代码似乎永远不会调用close(),所以我想假设它是由SQLiteOpenHelper或其他一些拼图处理的,但我真的很想知道.我真的不太相信示例代码,要么...

问题摘要:我们何时应该关闭提供商中的数据库,如果有的话?

sqlite android android-contentprovider

73
推荐指数
4
解决办法
2万
查看次数

如何使用带电子的sqlite3模块?

我想使用电子开发桌面应用程序,该电子使用通过npm通过命令安装的sqlite3软件包

npm install --save sqlite3
Run Code Online (Sandbox Code Playgroud)

但它在电子浏览器控制台中出现以下错误

Uncaught Error: Cannot find module 'E:\allcode\eapp\node_modules\sqlite3\lib\binding\node-v45-win32-x64\node_sqlite3.node'
Run Code Online (Sandbox Code Playgroud)

我的开发环境是Windows 8.1 x64节点版本12.7

我的package.json文件如下所示:

{
  "name": "eapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "electron-prebuilt": "^0.32.1"
  },
  "dependencies": {
    "angular": "^1.3.5",   
    "sqlite3": "^3.1.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

index.js文件

var app = require('app');
var BrowserWindow = require('browser-window'); 
require('crash-reporter').start();
var mainWindow = null;


app.on('window-all-closed', function() {  
    if (process.platform != 'darwin') {
        app.quit();
    }
});

app.on('ready', …
Run Code Online (Sandbox Code Playgroud)

sqlite node.js npm electron

73
推荐指数
7
解决办法
7万
查看次数

如何从SQLite表中检索最后一个自动增量ID?

我有一个表列消息列ID(主键,自动增量)和内容(文本).
我有一个表用户名列有用户名(主键,文本)和哈希.
一个发件人(用户)向许多收件人(用户)发送邮件,收件人(用户)可以收到许多邮件.
我创建了一个包含两列的表Messages_Recipients:MessageID(引用Messages表的ID列和Recipient(引用Users表中的用户名列).此表表示收件人和邮件之间的多对多关系.

所以,我的问题是这个.在将新消息存储在数据库中之后,将创建新消息的ID.但是,我如何保存对刚刚添加的MessageRow的引用以便检索这个新的MessageID?
我总是可以在数据库中搜索最后添加的行,但是这可能会在多线程环境中返回一个不同的行?

编辑:据我所知,SQLite你可以使用SELECT last_insert_rowid().但是如何从ADO.Net中调用此声明?

我的持久性代码(messages和messagesRecipients是DataTables):

public void Persist(Message message)
{
    pm_databaseDataSet.MessagesRow messagerow;
    messagerow=messages.AddMessagesRow(message.Sender,
                            message.TimeSent.ToFileTime(),
                            message.Content,
                            message.TimeCreated.ToFileTime());
    UpdateMessages();
    var x = messagerow;//I hoped the messagerow would hold a
    //reference to the new row in the Messages table, but it does not.
    foreach (var recipient in message.Recipients)
    {
        var row = messagesRecipients.NewMessages_RecipientsRow();
        row.Recipient = recipient;
        //row.MessageID= How do I find this??
        messagesRecipients.AddMessages_RecipientsRow(row);
        UpdateMessagesRecipients();//method not shown
    } 

}

private void UpdateMessages()
{
    messagesAdapter.Update(messages);
    messagesAdapter.Fill(messages);
}
Run Code Online (Sandbox Code Playgroud)

database sqlite primary-key auto-increment junction-table

72
推荐指数
5
解决办法
10万
查看次数

Android专栏'_id'不存在?

我在使用记事本示例中的某些功能时遇到了问题.这是NotepadCodeLab/Notepadv1Solution中的代码:

String[] from = new String[] { NotesDbAdapter.KEY_TITLE };
int[] to = new int[] { R.id.text1 };

SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
R.layout.notes_row, c, from, to);
Run Code Online (Sandbox Code Playgroud)

这段代码似乎工作正常.但为了清楚起见,我运行了ADB 实用程序并运行SQLite 3.我检查了架构如下:

sqlite> .schema

CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE notes (_id integer primary key autoincrement, title text
not null, body text not null);
Run Code Online (Sandbox Code Playgroud)

一切对我来说都很好.


现在我的应用程序,据我所知,基本相同,只有一些小的改动.我简化并简化了我的代码,但问题仍然存在.

String[] from = new String[] { "x" };
int[] to = new int[] { R.id.x };

SimpleCursorAdapter adapter = null;
try
{
    adapter = new …
Run Code Online (Sandbox Code Playgroud)

sqlite android listview

72
推荐指数
6
解决办法
6万
查看次数

将MySQL数据库导出到SQLite数据库

请帮我将MySQL数据库导出到SQLite数据库中.

mysql database sqlite

72
推荐指数
3
解决办法
7万
查看次数