草庐IT

mysql - 检索 MySQL 中每个 record_id 的每列的最后一个非空记录

我有一个名为records的MySQL表。以下是其内容。idrecord_idData1Data2Time11null11/1/16211null1/3/16312null1/4/1641null31/5/16521null2/1/16621null2/3/16727null2/4/1682null52/5/16我想要一个MySQL查询来检索每个record_id的每个列的最后一个非空记录。结果看起来像;record_idData1Data2Time1231/5/162752/5/16这个问题的棘手部分是涉及多个列。 最佳答案 SE

mysql - 如何从 1 更新 id 集?

我有一个id即主键和自动递增。是否有任何查询来更新我现有的id并使我的id从1开始,下一个id2等等..例如idname3ABC5XYZ9PQR注意:id已经是主要的和自动递增的,我不想截断我的id。如果可能我想得到idname1ABC2XYZ3PQRALTERTABLEtableAUTO_INCREMENT=1;不是我的解决方案。谢谢 最佳答案 当然有办法:set@counter=0;updatetable_namesetid=(@counter:=@counter+1);编辑为避免重复键的问题,您可以在将当前ID临时更改为负等价

mysql - Rails ActiveRecord - 有没有办法在没有 id 的情况下对表执行操作?

我有一个单行两列的表格-int'version',datetime'updated'是否有RailsActiveRecord方法来获取和设置这些列中的数据?没有id列。我正在使用此表来跟踪其他表的查询版本。每次查询另一个表后,版本列都会递增,更新后的列会设置为当前日期时间。 最佳答案 在您的模型类中,使用self.primary_key="primary_key_column"指定要用作主键列的列。我想在您的情况下,您可以使用版本列。 关于mysql-RailsActiveRecord-

mysql - 在 Ruby on Rails 中,如何在先前被销毁时创建 ID 为 3 的记录?

我正在尝试一个实验性Rails项目并销毁了记录3(ID==3),所以现在有记录1、2、4和5。有没有办法用从1到5的记录ID重新填充此表?(这是使用mysql)我可以用ifItem.exists?(i)item=Item.find(i)elseitem=Item.newend#setsomevaluesitem.name="haha"+iitem.saveItem.new()用于创建具有新自动增量记录ID(在本例中为6)的新记录,但是之前删除的记录呢? 最佳答案 您可以使用以下方式设置ID:item=Item.newitem.id=

mysql - 从一个表中删除具有 id 在 mysql 中另一个表中不存在的值

我最近开始使用表之间的关系,当我尝试连接2时,我发现有些ID具有不存在的外键。对于这个问题,假设我有带有ID和名称的餐厅表,以及带有IDrest_id的菜单表,它是餐厅表的外键。我想删除restaurants表中不存在的所有具有rest_id的菜单。我用过这个:DELETEFROM`Menus`WHERErestidIN(SELECTDISTINCT`restid`from`Menus`Mleftjoin`Eng_Restaurants`ERonM.`restid`=ER.`ID`whereER.`ID`isnull)但我收到以下错误:#1093-您不能在FROM子句中指定要更新的目标

mysql - Rails 将主 ID 更改为 64 位 bigint

我正在使用Rails和mysql2适配器。我想将所有主ID和外键更改为64位整数,而不是默认的32位整数,因为它们现在用于我的生产数据库。这是即时可行的还是我必须删除数据库、更改结构并再次导入数据?如果有一种方法可以在不删除数据库的情况下做到这一点,即使它是一种hack,也很高兴知道。 最佳答案 Rails5.1已经为迁移添加了bigint类型,您可以这样做:change_column:users,:id,:bigint来源:http://www.mccartie.com/2016/12/05/rails-5.1.html

PHP - 使用一组 ID 从数据库中删除许多项目

我有这个数组array(4){[0]=>string(1)"1"[1]=>string(1)"3"[2]=>string(1)"4"[3]=>string(1)"5"}这个数组的每个元素都是帖子的ID。在mysql中,表posts,列ID。删除一个ID的查询类似于从id=$id的帖子中删除我可以查看这个数组并对每个数组进行删除查询。但它们是4个。所以这将是4个查询。如果我有70?70个查询....问题是,如何一次删除所有具有此ID数组的帖子? 最佳答案 首先使用implode()从您的数组中创建一个字符串,然后使用WHEREidIN

java - 使用@GeneratedValue(strategy=GenerationType.TABLE),sequence_next_hi_value 是一个 int(11) 但我的表有一个 id 列 bigint(20)

我将@Id与@GeneratedValue(strategy=GenerationType.TABLE)一起使用,只是检查了hibernate是否创建了一个表hibernate_sequences,但是sequence_next_hi_value的列类型是一个int(11)。我有一些具有bigint(20)类型的id字段的实体(我的意思是表),这行得通吗?当我的表达到我期望的行数时?谢谢 最佳答案 (...)hibernatehascreatedatablehibernate_sequences,butthecolumntypefo

mysql - 可以使用十六进制作为数据库 ID 吗?

我刚刚收到了一个对我来说有点奇怪的数据库模式。数据库位于SoapWeb服务后面,我注意到所有表ID都是十六进制格式的字符串例如:0x1D283F我必须将数据复制到MySQL数据库中。我从来没有使用Hex作为ID,所以我不知道这是好主意还是坏主意,或者这两种方式都不重要。我猜自动增量在这里不起作用,这让我觉得这将是一个坏主意。我可以将它们转换为整数,或保持原样,但有什么影响。 最佳答案 首先,一个数是'16进制'还是'10进制'只是外在表现形式的问题,不会改变存储格式。但是,使用数字字符串作为数据库索引显然效率低下,并且可能会阻止某些

c# - 删除表中的行时如何更新自动增量ID?

我正在创建使用C#中的MYSQL数据库的应用程序。我想删除行并更新表中id的自动增量值。例如,我有一个包含两列的表:id和station,表是站列表。像这样idstation1pt12pt23pt3如果我删除第二行,删除表格后看起来像这样:idstation1pt13pt3有什么方法可以更新表的id,对于这个例子,第三行的id而不是值3的值是2?提前致谢! 最佳答案 根据定义,自动增量列不应手动更改。如果其他一些表使用此ID(3)作为外键来引用此表中的该记录,会发生什么情况?该表应相应更改。(想一想,在您的示例中很简单,但是如果在m