我想实施一个停车场应用程序,所以有一个车库有5个或更多停车场,当司机停放他的车时,车库的下一个免费插槽应该分配给他.
所以我有一个带5个或更多插槽的表车库我有问题当我更新更新车库设置free = 0,设置car = 1(car_id)然后所有空闲插槽都更新我怎么能限制只更新第一个免费行?
谁能帮我
提前谢谢(假)谢谢我有车库表,每个级别的水平和插槽当我停车时我想更新只是免费插槽

您需要指定要更新的记录,否则数据库将更新所有记录.如果您希望专门更新一条记录,可能需要PRIMARY KEY使用WHERE子句引用它.
如果您尚未PRIMARY KEY为表分配,则可以使用SQLite的rowid列.像这样的东西:
SELECT rowid FROM garage WHERE free = 1;
Run Code Online (Sandbox Code Playgroud)
然后,假设您确定现场5对于汽车42是免费的:
UPDATE garage SET free = 0, car = 42 WHERE rowid = 5;
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以将这两个步骤合并为一个查询:
UPDATE garage SET free=0, car=42 WHERE rowid IN (SELECT rowid FROM garage WHERE free=1 LIMIT 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |