Corona SQLite:检查一个值是否存在。
2014-12-23 11:26:12
收藏:0
阅读:94
评论:2
我想检查我的 SQL 请求是否可以返回一个值:
Search_IDItem = "SELECT * FROM giftshop WHERE id ="..item_id..""
for row_2 in db:nrows(Search_IDItem) do (..)
CheckInventory = "SELECT * FROM inventory WHERE code ="..row_2.code..""
if CheckInventory ~= nil then
print(row_2.code)
updateItemsCode(row_2.code, "inventory", "qtyoninventory", row_2.qtyoninventory+1)
else
insertInventory(2,row_2.code, row_2.name, row_2.src, row_2.desc, "no",row_2.qtyoninventory,row_2.price,row_2.usetxt)
end
错误是:
near "=": syntax error
基本上,我想知道这个值是否存在,如果存在,我只会更新“quantity”字段,如果不存在,我将创建一个新的项目。
不幸的是,它不起作用!有什么建议或解决方案吗?
点赞
用户2767985
我找到了一个解决办法:
对于 db:urows "select count(*) from inventory" 中的每个 x,执行以下操作:
如果 x>0,则表明库存为空
对于 db:urows("SELECT count (*) FROM inventory WHERE code ='"..row_2.code.."'") 中的每个 w,执行以下操作:
如果 w > 0,则表明该商品已经在库存中
CheckInventory = "SELECT * FROM inventory WHERE code ='"..row_2.code.."'"
对于 db:nrows(CheckInventory) 中的每个 row_4,执行以下操作:
updateItemsCode(row_4.code, "inventory", "qtyoninventory", row_4.qtyoninventory+1)
否则
表明该商品不在库存中,因此我们需要将其添加!
对于 db:urows("SELECT MAX(id) FROM inventory") 中的每个 maxid,执行以下操作:
insertInventory(maxid+1,row_2.code, row_2.name, row_2.src, row_2.desc, "no",1,row_2.price,row_2.usetxt)
else
insertInventory(1,row_2.code, row_2.name, row_2.src, row_2.desc, "no",1,row_2.price,row_2.usetxt)
end
2014-11-23 12:38:10
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
语法错误是SQL误解您的查询的结果。
最常见的原因之一是插入不正确的字符串。因此,我认为row_xx.code是一个字符串。
为了解决这个问题,你应该像这样用 ' 符号引用 row_xx.code:
CheckInventory = "SELECT * FROM inventory WHERE code ='"..row_2.code.."'"更新
为了解决问题的第二部分并找出值是否存在,我建议遵循以下步骤
在旧的Java中,当我获取SQLite Cursor时,我可以像这样检查它是否具有任何行:
if(cursor.moveToFirst()) // 它至少有一个值 else // 它没有任何值当然,对于Corona来说也有类似的东西
您还可以使用以下方法更新记录(如果不存在则进行创建):
// create record IF NOT EXISTS: String createNonExistentRec = "Insert or ignore into "...// insert key/unique values db.execSQL(createNonExistentRec, ...); // update values: String updateQuery = "..." ...