我有一个表项,其中包含如下项name------alphaalphabetacharliecharlie在这种情况下,我将如何删除重复的行,但应该保留一条记录。上表没有任何主键。 最佳答案 试试这个DELETEFROMitemWHEREGREATEST(0,@num:=IF(NAME=@NAME,@num+1,0),LEAST(0,LENGTH(@NAME:=NAME)))>0 关于mysql-删除没有主键的表中的重复行,我们在StackOverflow上找到一个类似的问题:
我有这样的tb1表:nameemaillinkjohnmyemail@gmail.comgooglejohnmyemail@gmail.comfacebookjohnmyemail2@gmail.comtwitter........andmore当我用查询调用数据时看起来像SELECTname,email,group_concat(DISTINCTlinkSEPARATOR'/')assourceFROMtb1groupbyemail结果是这样的:NAMEEMAILSOURCEjohnmyemail2@gmail.comtwitterjohnmyemail@gmail.comfaceb
在Debian上运行的MySQL数据库(版本5.5.41-0+wheezy1-log)。表hotels有一个列nameVARCHAR(128)并且引擎是InnoDB。CREATETABLE`hotels`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT`name`varchar(128)NOTNULLDEFAULT''COMMENT'HotelName',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=0DEFAULTCHARSET=utf8;这个表中有两条记录:1BESTWESTERNPREMIERLECAR
我在table上有一个叫做距离的表格。它有4列。id、start_from、end_to和距离。我有一些重复的记录。某种意义上的重复记录,start_from|end_to|distanceChennaiBangalore350BangaloreChennai350ChennaiHyderabad500HyderabadChennai510在上表中,钦奈到类加罗尔和类加罗尔到钦奈都有相同的距离。所以我需要查询以删除select上的那条记录。我想要一个像这样的输出start_from|end_to|distanceChennaiBangalore350ChennaiHyderabad50
使用PHP和MySQL,我试图从下面列出的所有4个表中的数字和类型列中获取所有不同的值:table_1ID|t1_number|t1_type1|1|new2|1|old3|2|new4|3|new5|1|oldtable_2ID|t2_number|t2_type1|1|future2|1|new3|3|past4|3|new5|1|newtable_3ID|t3_number|t3_type1|1|past2|1|new3|1|new4|1|new5|1|oldtable_4ID|t4_number|t4_type1|1|new2|4|new3|3|old4|2|new5|1|ne
考虑以下查询INSERTINTODummyTable(TextColumn)VALUES('Text');INSERTINTODummyTable(TextColumn)VALUES('Text');SELECTDISTINCTTextColumnFROMDummyTable注意第二个插入包含一个空格:'Text'但是DISTINCT忽略空格并只返回一行“文本”——如何让DISTINCT不忽略空格? 最佳答案 原来我在寻找BINARY关键字,然后DISTINCT比较原始二进制值,包括空格。SELECTDISTINCTBINARYTe
PostgreSQL快让我打小动物了。我正在为MySQL执行以下SQL语句以获取唯一的城市/州/国家列表。SELECTDISTINCTcity,state,countryFROMeventsWHERE(city>'')AND(number_id=123)ORDERBYoccured_atASC但是这样做会使PostgreSQL抛出这个错误:PGError:ERROR:forSELECTDISTINCT,ORDERBYexpressionsmustappearinselectlist但是,如果我将occured_at添加到SELECT,那么返回唯一列表就会失败。使用MySQL和第一次查询
我有4个表,分别是商店、用户、评论和评级。我想获取相应商店的所有评论以及评论的用户详细信息以及该商店的总体评分。我几乎完成了单个查询。但问题是,如果同一用户多次对商店进行相同评级,则将其视为单一评级。但该评分计数是正确的。即从这个表中,user_id3被评为shop_id14次。所以计数是4,total_rating是17。我的查询是selectreview.comments,users.username,count(distinctrating.id)asrating_count,sum(distinctrating.rating)astotal_ratingfromuserslef
我有表a有两个字段:id(PK)和f.考虑以下记录:id|f1|NULL2|'foo'3|'bar'4|NULL5|'foo'6|'baz'我想检索并计算所有具有不同f的记录包括每条记录的值WHEREfISNULL.鉴于此条件,查询应返回除#5之外的所有记录,因为集合中已包含相同的值,总计数为5。我用来检索所有记录的查询如下所示:SELECTCASEWHENEXISTS(SELECTidFROMaa2WHEREa2.f=a.fANDa.id如果可以改进此查询,我欢迎任何反馈。无论如何,主要问题是计数。显然添加了一个COUNT(*)在这里无济于事,我完全不知道如何计算过滤后的记录。
以下SQL查询:SELECTmessages.id,messages.created_at,comments.created_atFROMmessagesLEFTJOINcommentsONcomments.message_id=messages.idWHERE(messages.idIN(429,443))ORDERBYGREATEST(messages.created_at,comments.created_at)DESC返回:idmessages.created_atcomments.created_at--------------------------------------