标签: sqlite

更新 SQlite 中的 NULL 值

我有一个表,其中一个整数列中有一些 NULL 值,我将其中一个值设置为 2。

我通过用数字替换这些 NULL 值来测试该语句,并且该语句正确更新了值,但是每当我尝试更新 NULL 值时,它就保持为 NULL。

在此应用程序的上下文中,该值可以是 NULL、0 或 1,此时将运行 UPDATE 命令将该值设置为 2。它适用于 0 和 1,并且如果我将 null 值替换为诸如 9 之类的其他内容,但是将它们保留为 NULL 会很方便 - 但它不会更新为 NULL!

我该如何解决这个问题?

sqlite

0
推荐指数
1
解决办法
1855
查看次数

由 cron 启动时 Python 代码不起作用

我有一个以以下代码开头的程序:

cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
Run Code Online (Sandbox Code Playgroud)

此代码返回一个包含数据库表的元组。当我手动运行它时它运行良好,但当我使用 cron 运行它时它运行良好(我使用 Debian Wheezy)。当我用 cron 启动它时,我只有[]作为输出,我不明白为什么。任何的想法 ?谢谢。

编辑:其余代码工作正常,即使由 cron 启动。

EDITbis :这是完整的代码

# Opening of the database
data="bdd-test.sq3"
conn =sqlite3.connect(data)
cur =conn.cursor()

type_liste=[]
table_liste=[]
# Listing and opening of the tables
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())

for table in cur.fetchall():
    table=table[0]
    if '_m' in table:
        cur.execute("CREATE TABLE IF NOT EXISTS {} (date TEXT, type TEXT, zone TEXT, min REAL, max REAL, moyenne REAL)".format(table))
    else:
        type_liste.append(table)
        cur.execute("CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

python sqlite cron

0
推荐指数
1
解决办法
1046
查看次数

如何在 Sqlite 中存储 QRect?

我需要在 Sqlite 数据库中存储一个 QRect。(我已经四处搜索,但没有看到任何关于此的内容)

Qt/QSQLITE 是否会自动将 QRect 转换为 QVariant 并处理所需的任何分解,还是我必须自己执行此操作并将原点和大小值存储在四个单独的字段中?

如果是这样,并将其推广到其他 Qt 数据类型,是否可以存储 QVector、QList?我会在我的表定义中将这些(和 QRect 等)定义为 BLOB 类型吗?

sqlite qt

0
推荐指数
1
解决办法
1586
查看次数

sqlite3中复合外键的问题

那里!我在 sqlite3 中有一个失败的外键约束,我真的不知道为什么。我正在使用此处描述的复合外键(http://www.sqlite.org/foreignkeys.html#fk_composite)和“普通”外键。

这是我的模式:

sqlite> .schema sources
CREATE TABLE sources(
    source_id VARCHAR(16) NOT NULL,
    source_type INTEGER NOT NULL,
    title VARCHAR(128) NOT NULL,
    year INTEGER,
    month INTEGER,
    PRIMARY KEY(source_id),
    UNIQUE(title)
);
sqlite> .schema author_aliases
CREATE TABLE author_aliases(
    author_id INTEGER NOT NULL,
    alias_id INTEGER NOT NULL,
    forenames VARCHAR(128),
    surname VARCHAR(128) NOT NULL,
    PRIMARY KEY(author_id, alias_id),
    FOREIGN KEY(author_id) REFERENCES authors(author_id),
    UNIQUE(forenames, surname)
);
sqlite> .schema alias_source_relations
CREATE TABLE alias_source_relations(
    source_id VARCHAR(16) NOT NULL,
    author_id INTEGER NOT NULL,
    alias_id INTEGER NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

sql sqlite foreign-keys

0
推荐指数
1
解决办法
3489
查看次数

如何在sqlite中存储mp3文件?

我正在创建一个 android 应用程序,它是一个方言词典。我的问题是我不知道如何在数据库中存储 audio.mp3 文件。

任何人都可以教我或分享一些如何制作它的代码吗?

database sqlite mp3 android android-sqlite

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

如何优化这个非常慢的左外连接 sqlite 查询?

我遇到了一个 SQL 查询问题,该问题基本上慢到需要大约 17 分钟以上的时间。我很确定这仅仅是因为外连接和纯数据量使这个查询变得很糟糕。不幸的是,我没有看到重写它以获得我想要的东西的好方法

我有以下表格(为简洁起见省略了一些列):

Events
ID (AUTOINCREMENT INTEGER PRIMARY KEY) | Guid (16 Byte BLOB) | Time (FLOAT)


Relationships
ID (AUTOINCREMENT INTEGER PRIMARY KEY) | Parent (INTEGER) | Child (INTEGER) | ParentTable (INTEGER) | ChildTable (INTEGER)
Run Code Online (Sandbox Code Playgroud)

事件表有大约 25k 行(这可能是实际的四倍数据的)。关系表有大约 212k 行(同样,可能会翻两番)。

本质上,事件可以嵌套事件。生成的树没有深度限制(尽管目前还不是很深)。

选择事件记录时,我的目标是返回提供以下数据的数据行:

ID | Guid | Time | ParentIndex | ParentGuid
Run Code Online (Sandbox Code Playgroud)

我也完全期望根级事件将具有空的 ParentID 和 ParentGuid 列(这是我采用外连接方法的原因之一)。

我的查询(无约束)如下所示:

SELECT E.*, R.Parent as 'ParentIndex', PE.Guid AS 'ParentGuid' FROM Events AS E
LEFT OUTER JOIN Relationships AS …
Run Code Online (Sandbox Code Playgroud)

sql sqlite optimization left-join outer-join

0
推荐指数
1
解决办法
8496
查看次数

在sqlite中使用Case语句,无法获得我正在寻找的结果

我在使用 SQL 查询时遇到困难。我正在使用sqlite。

我有一张桌子expenses。我正在尝试使用CASE语句来选择和求和值。以下是一些示例数据:

在此处输入图片说明

这是没有得到我想要的查询...

SELECT e.category, 
  CASE 
    WHEN e.schedule ='None' AND e.created_at > '2014-02-01 00:00:00 +0000' THEN SUM(e.amount) 
    WHEN e.schedule = 'Daily' THEN SUM(e.amount)*28.000000 
    WHEN e.schedule = 'Mon - Fri' THEN SUM(e.amount)*20 
    WHEN e.schedule = 'Weekly' THEN SUM(e.amount)*4.000000 
    WHEN e.schedule = 'Every 4 Weeks' THEN SUM(e.amount)*1.083333333333 
    WHEN e.schedule = 'Monthly' THEN SUM(e.amount)*1 
  ELSE 0 
  END 
AS totalValue FROM expenses e GROUP BY e.category ORDER BY e.category
Run Code Online (Sandbox Code Playgroud)

下面是查询返回的图片。

我想看到Housing420 的总价值,这是因为有三条记录带有category“住房”,其中一条schedule记录为“无”(记录 …

sql sqlite select sum case

0
推荐指数
1
解决办法
4932
查看次数

如何使 SQLite3 获取的数组更干净?

我正在将 SQLite3 用于我的 Web 应用程序。一切正常。我能够访问数据库,创建和一切。

但是..当我使用以下代码检索信息时:

function db_select($username, $password, $database = 'Railway') {

$db = db_connect($database);

$result = $db->query("SELECT * FROM users ") or die('Query failed');
$rowss = array();

while ($row = $result->fetchArray()) {
    $rowss[] = $row;
}

print_r($rowss);
}
Run Code Online (Sandbox Code Playgroud)

输出

Array ( 
[0] => Array ( [0] => John123 [username] => John123 
[1] => foo [password] => foo 
[2] => John [fname] => John 
[3] => Smith [lname] => Smith 
[4] => 21 [age] => 21 
[5] => john@gmail.com …
Run Code Online (Sandbox Code Playgroud)

php sqlite

0
推荐指数
1
解决办法
4059
查看次数

使用python中的变量进行SQL查询

我正在制作一个程序,该程序是小学教师设置的测验的用户界面。我正在尝试使用用户在上一页输入的数据的查询。它正在数据库中寻找与相关用户名和测验编号相匹配的人。这样老师就可以看到学生在某些测验中的表现。

这是我的代码。

dbDatabase = sqlite3.connect('c:\\xampp\\cgi-bin\\MakingATable.db')
cuDatabase = dbDatabase.cursor()

Fieldstorage = cgi.FieldStorage() #what you typed in on the webpage

Quizno = Fieldstorage.getvalue("quizno")
UserID = Fieldstorage.getvalue("username")

#print (Quizno)
#print (UserID)

cuDatabase.execute ("""
    SELECT Result
    FROM resultstable
    WHERE QuizID = '""" + str(Quizno) + """
    AND UserID = '""" + UserID + "'")

for (row) in cuDatabase:
    print (row)

dbDatabase.commit()
cuDatabase.close()
Run Code Online (Sandbox Code Playgroud)

这是我运行网页时收到的错误消息:

     40         FROM resultstable
     41         WHERE QuizID = '""" + str(Quizno) + """
=>   42         AND UserID = '""" + UserID + …
Run Code Online (Sandbox Code Playgroud)

python sql sqlite variables

0
推荐指数
1
解决办法
2万
查看次数

使用另一个表中的值和 SQLite 中的 where 子句更新多行

PK | PARENT | COMMENT
---+--------+-----------
 1 |        | I AM ONE
 2 |        | I AM TWO
 3 |      1 | I AM ONE
 4 |      1 |
 5 |      2 | I AM TWO
 6 |      2 | I AM THREE
Run Code Online (Sandbox Code Playgroud)

我想更新不为空COMMENT的行的字段PARENT,以便COMMENT与父项相同。这是预期的结果:

PK | PARENT | COMMENT
---+--------+---------
 1 |        | I AM ONE
 2 |        | I AM TWO
 3 |      1 | I AM ONE
 4 |      1 | I …
Run Code Online (Sandbox Code Playgroud)

sql sqlite

0
推荐指数
1
解决办法
765
查看次数