- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个图像表,它与特定组 (vehID) 相关联,我需要为每个组创建它们的顺序。
这是我忘记设计的字段的初始图像条目位置。
我一直在玩 @row
,但没走多远。
set @row= 0;
select @row:=@row+1 as row, vehID,imgID from images group by vehID;
这给了我 rowID 但不会为每个组重置
每个 vehID 都有 1 到 n 个条目,我希望计算该值并使用计算值更新该行的条目。
我不知道如何在更改 vehID 时将@row 重置为 0。可能是一些子选择。
如果我能让 Select 工作任何关于如何编码 UPDATE(如果不明显)的建议,我将不胜感激
Update images set imgPosition = Calculated Value where imgID = current imgID
最佳答案
您只需要声明另一个变量来保存之前的车辆 ID。然后使用 IF 语句,您可以将 vehID 与前一个进行比较,并相应地设置行号。然后将前一个 vehID 变量设置为当前行的 vehID。
请注意,我将“分组依据”更改为“排序依据”。这有两个原因:
1- 列出所有行
2- 确保来自相同 id 的行彼此跟随。否则与之前的值比较将不正确。
最后,在重置前一个变量以保存当前行的值之前,请确保比较前一个 vehID 值并确定 rownum 是什么。
set @previous_vehID= 0;
set @row= 0;
select if(@previous_vehID=vehID, @row:=@row+1, @row:=1) as row,@previous_vehID:=vehID, vehID,imgID from images order by vehID
编辑:
我只是错过了更新部分。您可以为此尝试交叉表更新:
set @previous_vehID= 0;
set @row= 0;
update images a, (
select if(@previous_vehID=vehID, @row:=@row+1, @row:=1) as row,@previous_vehID:=vehID, vehID,imgID from images order by vehID ) aa
set a.imgPosition = aa.row where a.vehID=aa.vehID and a.imgID=aa.imgID
以上代码在单个语句/查询中进行选择和更新。如果不起作用,将结果插入临时表并使用它们在单独的语句中进行更新。
关于MySQL 使用组的 rowid 更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11590957/
所以我有一张关于图像数据的表格。 table 看起来像这样...... ROWID|title|description|file_path 文件路径包含图像的名称。我想重命名图像以匹配 ROWID。
我想知道 rowID 之间的区别和 rowNUM 以及如何在我们的表格中看到这两者。 当我执行此操作时: SELECT * FROM emp WHERE rownum=1 它返回一个查询,但是当我对
我们可以在不使用伪列rowid的情况下删除重复记录吗...删除重复记录时 max(rowid)/min(rowid) 的含义是什么? 最佳答案 ROWID 是 Oracle 用于定位物理记录的内部行标
The rowid value can be accessed using one of the special case-independent names "rowid", "oid", or "
我正在尝试创建一个交叉表,其中行 = 月,列 = 天(即 1、2、3、4...31)。 Month | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
我创建了带有列 id、name 的 sqlite 表 tmp。 CREATE TABLE if not exists tmp ( id INTEGER
使用 rowid 删除是否有任何严重的禁忌症? DELETE FROM NETATEMP.SFAC_TESTATA_CASISTICHE WHERE ROWID IN ( SELECT
甲骨文database change notification feature在行插入、更新和删除时发送 rowids(物理行地址)。正如 oracle 的文档中所指出的,应用程序可以使用此功能来构建
假设我创建一个表并通过执行以下操作插入一行: CREATE TABLE people (first_name text NOT NULL, last_name text NOT NULL ); INS
我可以使用 ROWID 代替 SQLite 表中的时间戳吗? 我需要获取 SQLite 表的 50 个最新项目,我正在考虑使用单独的时间戳字段,但后来我发现更大的 ROWID 意味着更新的项目,并且
我正在使用 sqlite3 进行我的第二个项目并有一个问题。 使用 rowid 和/或使用自己的 AUTOINCREMENT INTEGER 值有什么区别? 哪一个比另一个更好/更快? 最佳答案 根据
如果我输入: INSERT INTO table_b SELECT rowid, somecolumn FROM table_a ...rowid 列将作为普通列复制到新表中,这很可能会产生错误,
这是一个运行良好的查询: SELECT rowid as msg_rowid, a, b, c FROM messages m1 这是另一个也很好的方法: SELECT rowid as match_
我想知道使用 rowid 进行行匹配是否安全? 我有以下查询: select * from a, (select a.rowid rid, from a, b, c where a.some
我正在尝试使用 rowid 数据类型创建类型,但由于我尝试使用的类型而收到此错误: SQL> CREATE TYPE join_t IS OBJECT (inn rowid, out rowi
我只是想听听关于 ROWID 类型用作任何函数或过程的输入参数的不同意见。 我通常使用并看到主键用作输入参数,但是使用 ROWID 作为输入参数有什么缺点吗?我认为这很简单,如果在 WHERE 子句中
我正在调用一个存储过程,该过程返回行列表的 rowid。我在 Java 中存储实际 rowid 值时遇到了问题,因此我可以稍后使用该 rowid 进行后续更新语句。 例如: Select name,
我正在努力想出一个 sqlite 表的查询以 UPDATE OR INSERT 在 rowid。我遇到的问题是我有一个依赖于 rowid 的数据库,但是在填充表时可能没有足够的行。所以表格可能看起来像
我遇到一个问题,我无法弄清楚如何计算前一周每天的 RowID 数量,然后按计数器进行分组。 This is my current result This is the result i'm tryin
当我打开 EditRecord 的 Activity 时,我想选择微调器行以获得编辑记录中的足够值我发现如下代码,但它对微调器中的几条记录没问题,但是当 spinner.cursor 包含许多记录时,
我是一名优秀的程序员,十分优秀!