草庐IT

group_keys

全部标签

mysql - INSERT...ON DUPLICATE KEY UPDATE..... 有两个关键字段

我有一个包含三个字段的表字段一field_two字段三我想做一个插入/更新,但不是检查其中一个关键字段是否已经存在,我需要检查(field_one,field_two)组合是否已经在数据库中,如果是,然后更新插入。 最佳答案 在您的表(field_one,field_two)上创建唯一索引your_index_name(seedocs)并使用INSERT...ONDUPLICATEKEYUPDATE.MySQL会自动完成剩下的工作。 关于mysql-INSERT...ONDUPLICAT

mysql - 为什么 ON DUPLICATE KEY UPDATE 语句将值增加 2 而不是 1?

什么会导致ONDUPLICATEKEYUPDATE语句将值增加2而不是1,这是我使用的SQL:INSERTINTObanner_view(banner_id,date,views)VALUES('10',CURDATE(),'1')ONDUPLICATEKEYUPDATEviews=(views+1)这是数据库架构:CREATETABLE`banner_view`(`banner_id`int(11)UNSIGNEDNOTNULL,`date`dateNOTNULL,`views`int(10)UNSIGNEDNOTNULL,PRIMARYKEY(`banner_id`,`date`)

MySQL LIMIT 和 GROUP BY 与 JOIN

有没有办法在一个查询中按一个表列进行GROUPBY,但按另一个列进行LIMIT。像这样的东西:SELECTitems.*,subitems.*FROMitemsLEFTOUTERJOINsubitemsONsubitems.subitem_itemId=items.item_idGROUPBYsubitem.subitem_idLIMIT10...但是LIMIT10适用于项目记录的数量,而不是实际的行。所以我得到10个项目,但子项目不受限制,因此可能超过10个实际行(或者如果child等于或少于parent,则不会)。然后我可以在php中循环遍历这些并设置父/子关系。或者有更好的方法吗

mysql - 模拟 group by, order by, limit 从 mysql 到 ms sql 2000

我在MySQL中有一个查询:selectslscod,slsname,brcfromtd_casagroupbyslscodorderbyslsnamelimit0,100此查询检索具有slsname和brc的前100个唯一销售代码,按slsname升序排列。如何在MSSQL2000中更改此查询? 最佳答案 基本语法是:selecttop100slscod,slsname,brcfromtd_casagroupbyslscodorderbyslsname 关于mysql-模拟groupb

MYSQL:如何在 mysql GROUP BY 查询中返回所有不同的行

我有一个包含一些列和值的表TT========================id|name|g1|g2=========================10|abc|1|114|abc|1|033|abc|1|042|def|1|052|def|1|163|def|2|066|def|2|067|def|2|074|def|1|0我想用groupby子句选择所有不同的行我的问题是select*fromTgroupbynamehavingmax(g2)=0我的预期结果是========================id|name|g1|g2======================

php - 使用 Group By 并返回最新的副本

我在表格中有5列,id、address、lat、lng、timesetamp,当两行在lat和lng列。MySQL查询SELECTaddress,lat,lngFROMtableGROUPBYlat,lng问题:我设法让它通过这个查询只返回唯一的行。然而,结果似乎是最早插入数据库的重复行。如何让MySQL返回最新的重复行?类似于返回具有最新timestamp的重复行 最佳答案 这应该为每个纬度/经度组合获取具有最新时间戳的行,而不管每个组合有多少行。SELECT[whatyouwanttoknowaboutthelatestrow]

mysql - 使用 GROUP_CONCAT 选择多对多关系

我有3张table帖子,标签,标签关系post:post_id,post_title....tags:tag_id,tag_name...tags_relationship:tag_rel_id,tag_rel_post_id,tag_rel_tag_id如何通过tags_relationship表为每个帖子选择单列中带有标签的所有帖子(tag1,tag2,...)? 最佳答案 回答,这样问题就可以关闭了。找到解决方案SELECTp.*,GROUP_CONCAT(t.tag_name)taggedFROMtags_relationt

MYSQL group_concat 等同于 Sybase ASE?

SybaseASE中是否有与MYSQL的group_concat等价的功能? 最佳答案 没有,您必须创建一个存储过程。 关于MYSQLgroup_concat等同于SybaseASE?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8230712/

mysql - GROUP BY 子句的别名?

在MySQL中,可以在SELECT子句中创建的GROUPBY子句中使用别名(参见MySQLReference)。我只是想知道为什么不能在GROUPBY中创建别名并在SELECT中使用它,它遵循SELECT语句的执行顺序。换句话说,为什么下面是不合语法的?SELECTregion,SUM(population)FROMpopulation_us_statesGROUPBYCASEstate_nameWHEN'CT'THEN'NewEngland'WHEN'RI'THEN'NewEngland'WHEN'MA'THEN'NewEngland'WHEN'ME'THEN'NewEngland'

mysql - 即使抛出异常 DUPLICATE KEY 或事务被回滚,auto_increment 值也会递增

我有一个表-id是auto_increment和一个email列被定义为UNIQUE.考虑将auto_increment设置为1。在我的存储过程中,当我INSERT具有唯一电子邮件ID的新行时,auto_increment列会递增。正确的行为。现在,当我尝试再次INSERT同一封电子邮件时,UNIQUEKEY被违反了。我检查它并执行ROLLBACK。但是auto_increment现在设置为2。为什么?在INSERT的第三次尝试中,这次使用唯一的电子邮件插入行,但是id字段的值为3。不好。有什么方法可以将值减回到2。 最佳答案 检查