在语句中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”列
我使用以下命令来更新数据库中的字段:
UPDATE Movies SET 'From'=2 WHERE 'Name'="foo";
Run Code Online (Sandbox Code Playgroud)
我在 Windows 中使用 sqlite3.exe(命令提示符)。尽管没有产生错误消息,但表中没有任何变化。我用几个 GUI 工具检查了数据库,我确信 UPDATE 没有任何作用。
“From”是整数类型,“Name”是文本。
我有一个程序,它有一个具有特定模式的数据库,v0.1.0.
在我的下一个版本 ( v0.1.1) 中,我对数据库模式进行了更改。
因此,当我更新到 ( 0.1.1) 时,我希望这些更改能够生效,而不影响 ( 0.1.0) 和后续版本中的原始数据。
如何在不影响 ( 0.1.0) 数据库数据的情况下进行更改并在后续版本中跟踪这些更改?
我正在使用 python 与sqlite3.
更新
不支持该软件的多个版本。数据库取决于您使用的版本。
没有对数据库的并发访问,每个版本 1 个数据库。
因此用户可以使用旧版本,但是当他们升级到新版本时,.sqlite 架构将会更改。
我在 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)
我该如何解决这个问题?
我正在阅读有关 SQLite 中 blob 的高效处理的内容(请参阅sqlite3_blob_open 的更快替代方案)。
其中一项建议是:
增加数据库的页面大小。默认的 1kb 不太合适
搜索明显的术语不会产生有用的结果。
如何增加页面大小?
当我从第一个表中删除 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 查询的问题。我需要执行这样的 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 上使用这个。欢迎任何实用的建议。
如何连接 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) 我在尝试执行 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)
但是,它返回给我的是空记录。有任何想法吗?
提前致谢。
我刚刚开始学习 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呢?关系选项有什么用以及在哪里使用: