SQLITE 更新、限制、大小写

标签 sqlite limit

enter image description here我想实现一个 parking 场应用 所以有一个带5个或更多 parking 位的车库 当司机 parking 时,车库中的下一个空闲位置应该分配给他。

所以我有一个带 5 个或更多插槽的 table 上车库 我更新的时候有问题 update garage set free = 0, set car = 1 (car_id) 然后更新所有空闲插槽我怎么能限制只更新第一个空闲行?

谁能帮帮我

提前致谢(假) 谢谢 当我停放汽车时,我有带级别和每个级别插槽的车库表我只想更新空闲插槽

table garage

最佳答案

您需要指定要更新的记录,否则数据库将更新所有 记录。如果您希望专门更新一条记录,您可能需要使用 WHERE 子句引用其 PRIMARY KEY

如果您还没有为您的表分配PRIMARY KEYyou could use SQLite's rowid column.像这样:

SELECT rowid FROM garage WHERE free = 1;

然后,假设您确定第 5 号车位对 42 号车免费:

UPDATE garage SET free = 0, car = 42 WHERE rowid = 5;

如果您愿意,可以将这两个步骤合并到一个查询中:

UPDATE garage SET free=0, car=42 WHERE rowid IN (SELECT rowid FROM garage WHERE free=1 LIMIT 1);

关于SQLITE 更新、限制、大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823018/

相关文章:

mysql - MariaDB 中表连接的最大数量是多少?

MySQL 连接两个表中的 LIMIT 1

sqlite - SQLite 中的 "Insert if not exists"语句

sql - 返回值进行比较

iphone - 找不到iPhone模拟器的SQLite数据库:使用魔术记录

c - 在 C 中打印二叉树 asc/desc 限制节点数

sqlite - 转储不带自动生成列(例如 id)的 SQLite 表/数据库

ios - 来自 sqlite 数据库的 NSMutableArray addObject 不起作用

mysql - 合并前消除重复项

mysql order by timestamp desc 限制范围不起作用