标签: sqlite

条件分组子句 (sqlite)

在语句中SELECT,是否可以使用GROUP BY col_Aif col_B = "some_value", else GROUP BY col_C?那么结果中是否有用于分组的字段?

喜欢

SELECT value_of_the_column_used_for_group 
   FROM table WHERE ... 
   GROUP BY (IF col_B = "some_value" : col_A : ELSE : col_C)
   LIMIT 0, 20;
Run Code Online (Sandbox Code Playgroud)

基本上我想选择具有不同父级的子记录或具有不同 ID 的父级记录。但我想选择父 ID,可以是子记录中的 ID 列或“parent_ID”列

sql sqlite pdo group-by conditional-statements

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

UPDATE 语句在 sqlite 中不起作用

我使用以下命令来更新数据库中的字段:

UPDATE Movies SET 'From'=2 WHERE 'Name'="foo";
Run Code Online (Sandbox Code Playgroud)

我在 Windows 中使用 sqlite3.exe(命令提示符)。尽管没有产生错误消息,但表中没有任何变化。我用几个 GUI 工具检查了数据库,我确信 UPDATE 没有任何作用。

“From”是整数类型,“Name”是文本。

sqlite

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

数据库随软件更新而变化

我有一个程序,它有一个具有特定模式的数据库,v0.1.0.

在我的下一个版本 ( v0.1.1) 中,我对数据库模式进行了更改。

因此,当我更新到 ( 0.1.1) 时,我希望这些更改能够生效,而不影响 ( 0.1.0) 和后续版本中的原始数据。

如何在不影响 ( 0.1.0) 数据库数据的情况下进行更改并在后续版本中跟踪这些更改?

我正在使用 python 与sqlite3.

更新

不支持该软件的多个版本。数据库取决于您使用的版本。

没有对数据库的并发访问,每个版本 1 个数据库。

因此用户可以使用旧版本,但是当他们升级到新版本时,.sqlite 架构将会更改。

python sqlite

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

DELETE from LIMIT 1 错误

我在 SQLite 中遇到 LIMIT 1 问题,没有 LIMIT 1 的查询工作正常,但有时会删除所有重复元素。我想删除 1 行。

这有效:

myDataBase.execSQL("DELETE FROM praca
 WHERE pomieszczenie_id="+pomieszczenieid+" 

AND (praca.usluga_id IN (SELECT usluga_id FROM usluga
     WHERE usluga_nazwa='"+childvalue+"'))
AND (sciana_id IN(SELECT sciana_id from sciana 
    WHERE sciana_nazwa='"+rodzic_nazwa+"'))");  
Run Code Online (Sandbox Code Playgroud)

这将返回接近“LIMIT”语法错误

myDataBase.execSQL("DELETE FROM praca
 WHERE pomieszczenie_id="+pomieszczenieid+" 

AND (praca.usluga_id IN (SELECT usluga_id FROM usluga
     WHERE usluga_nazwa='"+childvalue+"'))
AND (sciana_id IN(SELECT sciana_id from sciana 
    WHERE sciana_nazwa='"+rodzic_nazwa+"')) LIMIT 1");  
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

mysql sql sqlite android

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

增加页面大小?

我正在阅读有关 SQLite 中 blob 的高效处理的内容(请参阅sqlite3_blob_open 的更快替代方案)。

其中一项建议是:

增加数据库的页面大小。默认的 1kb 不太合适

搜索明显的术语不会产生有用的结果。

如何增加页面大小?

sqlite

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

ON DELETE CASCADE 在 C# 中不起作用

当我从第一个表中删除 C# 中的主键时,ExecuteNonQuery()它不会影响第二个表。但是当我对 SQLiteStudio 执行相同操作时,它确实会影响第二个表。

这是我的 SQLite 代码:

CREATE TABLE Zdravila(
   ID INTEGER PRIMARY KEY,
   NACIONALNA_SIFRA INTEGER UNIQUE NOT NULL,
   IME_ZDRAVILA TEXT,
   POIMENOVANJE_IZDELKA TEXT NOT NULL,
   SIFRA_REZIM_IZDAJE INTEGER NOT NULL,
   ATC_OZNAKA TEXT   NOT NULL,
   NAZIV_POTI_UPORABE TEXT NOT NULL,
   FOREIGN KEY(NACIONALNA_SIFRA) REFERENCES LastnostiZdravila(NACIONALNA_SIFRA) ON DELETE CASCADE ON UPDATE CASCADE
   );

CREATE TABLE LastnostiZdravila(
   NACIONALNA_SIFRA INTEGER PRIMARY KEY,
   NAZIV_FARMACEVTSKE_OBLIKE  TEXT NOT NULL,
   KOLICINA_OSNOVNE_ENOTE  INTEGER NOT NULL CHECK (KOLICINA_OSNOVNE_ENOTE > 0),
   OZNAKA_OSNOVNE_ENOTE    TEXT NOT NULL,
   PAKIRANJE   TEXT NOT NULL,
   SIFRA_IMETNIKA_DOVOLJENJA  TEXT …
Run Code Online (Sandbox Code Playgroud)

sqlite c#-4.0

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

Sqlite 中的 acos 函数

我有一个关于 SQLite 查询的问题。我需要执行这样的 sqlite 查询:

SELECT
    id, (
      6371 * acos (
      cos ( radians(78.3232) )
      * cos( radians( lat ) )
      * cos( radians( lng ) - radians(65.3234) )
      + sin ( radians(78.3232) )
      * sin( radians( lat ) )
    )
) AS distance
FROM markers
HAVING distance < 30
ORDER BY distance
LIMIT 0 , 20;
Run Code Online (Sandbox Code Playgroud)

但我收到错误,因为 Sqlite 不支持acos. 有没有办法在 Sqlite 中执行我的查询?我需要在 iOS 上使用这个。欢迎任何实用的建议。

sqlite trigonometry ios

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

如何连接 3 个表并执行 func.sum

如何连接 3 个表(客户、订单和存款),并对数据库中存在的每个 Client.id 的 Orders.total 和 Deposits.total 执行 func.sum ?查询结果应包含列 Clients.email、func.sum(Orders.total) 和 func.sum(Deposits.total)。

到目前为止,我已经尝试了不同的查询:

listeclients = db.session.query(Clients,func.sum(Clients.orders.total).\
    label("ctotal"),func.sum((Clients.deposits.total).\
    label("dtotal"))).group_by(Client.id).all()
Run Code Online (Sandbox Code Playgroud)

给我不同的错误,例如:

AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Clients.orders has an attribute 'total'
Run Code Online (Sandbox Code Playgroud)

我想看看如何在 sqlalchemy 中做到这一点,但我也想了解这种查询逻辑背后的提示......

我的映射正确吗?这种连接的语法是什么?我应该在某个地方使用 eagerload 吗?我已经通过更简单的查询取得了成功,但这样的查询目前超出了我的能力范围!欢迎任何帮助,即使只是原始 SQL 中的逻辑。我被这个困住了...

class Clients(db.Model):
    __tablename__ = 'clients'    
    id = db.Column(db.Integer, primary_key = True)
    email = db.Column(db.String(60), index = True, unique = True)
    adresse = db.Column(db.String(64), index = True)
    telephone = db.Column(db.String(10), index = True)
    confirmed = db.Column(db.Boolean, default = …
Run Code Online (Sandbox Code Playgroud)

python sql sqlite sqlalchemy

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

SQLite查询选择另一个表中不存在的所有记录

我在尝试执行 SQLite 查询以获取另一个表中不存在的记录时遇到一些问题。基本上我有两个数据库表:

数据库表

我的练习表存储了所有可用的练习,而 bookingExercise 表存储了每个用户预订的练习。我想做的是,例如,如果该练习确实存在于 bookingExercise 中,则应将其过滤掉。

这是我使用的 SQLite 查询:

SELECT exercise.exerciseID, exercise.exerciseType, exercise.amout FROM exercise LEFT JOIN bookedExercise WHERE exercise.exerciseID = bookedExercise.exerciseID AND bookedExercise.exerciseID IS NULL
Run Code Online (Sandbox Code Playgroud)

但是,它返回给我的是空记录。有任何想法吗?

提前致谢。

sql sqlite

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

SQLAlchemy 关系,何时使用哪种关系?

我刚刚开始学习 Flask 并使用flask-sqlalchemy 包。我有一个模式,其中角色(id,名称)和用户(id,用户名,密码,role_id)和role_id是roles.id的外键。一对多关系,因为一个角色可以分配给许多用户,但每个用户都有一个角色。

在下面的代码中,

class Role(db.Model):
    # ..
    users = db.relationship('User', backref='role')

class User(db.Model):
    # ..
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id')
Run Code Online (Sandbox Code Playgroud)

到这里,我已经建立了role_id的用法,但是为什么还需要db.relationship呢?关系选项有什么用以及在哪里使用:

  1. 反向引用
  2. 主连接
  3. 懒惰的
  4. 使用列表
  5. 订单依据
  6. 中学
  7. 二次连接

python sqlite sqlalchemy flask flask-sqlalchemy

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