草庐IT

has_duplicates

全部标签

MySQL:SELECT 不返回结果,但 INSERT 抛出 'Duplicate Entry' 错误

我正在尝试使用产品描述表,但我有点头疼...我有一个方法(php)可以查找记录的ID键。如果与搜索条件的匹配项不存在,它会尝试创建行并返回该ID。现在,SELECT返回零行,但具有相同值的INSERT会抛出一个重复错误。SELECT`id`FROM(`m3sandbox_product_description`)WHERE`product_id`='403466'AND`company_id`='5'AND`value`='TERMINAL,FEMALEDISCONNECT,6.3MM,RED;ConnectorType:FemaleDisconnect;InsulatorColor:

mysql - 当通过关联在 has_many 上使用包含时,rails 4 保留连接对象顺序

使用Rails4.1.6和Ruby2.1.2并给出以下三个对象:classFilmCollectionhas_many:film_collection_films,->{order(:position)}has_many:films,through::film_collection_filmsendclassFilmCollectionFilmbelongs_to:film_collection_filmbelongs_to:filmendclassFilmhas_many:film_collection_filmsendFilmCollections是电影的集合,其成员通过连接对象F

MySQL : How to find non duplicate rows with left join?

几天前我在Mysql中遇到了一个问题,我无法解决它(我对DB很糟糕),我希望你能帮助我:)我将简化问题,以便您可以看到我卡在哪里!我有两个表:current_stock(article_id,...)stock_record(id,article_id)Current_stock描述的是实际库存,stock_record是已经盘点的元素。当我想将文章留在库存中(那些在current_stock但不在stock_record中的),并且当我得到多个相同的articles_id时,问题就来了我试过了:SELECT*FROMcurrent_stockWHERENOTEXISTS(SELECT

php - 如何在执行 ON DUPLICATE KEY 时保留数据?

场景如下:我正在尝试针对某些文本评论建立一种机制。例如我想计算一些评论中最常用的词。这是mycode:functioncleanWord(&$word){$word=trim($word,"'\".!{}()-/\*&^%$#@+~");}//listofcomments$arr_str=["this!!isthefirst&testmessage./","*Second^messagethis(is)","'another\**message***!\"}&itis.alsothefavoriteone(message)."];//Tojoinarray'sitems$str=imp

php - 执行 mysqli_stmt->execute() 导致 "MySQL server has gone away"错误

好的。这是一个奇怪的。首先,这是错误:Fatalerror:Uncaughtmysqli_sql_exception:MySQLserverhasgoneawayindatabase.php:84Stacktrace:#0database.php(84):mysqli_stmt->execute()根据其他StackOverflow文章,例如this和this,那个错误,MySQLserverhasgoneaway意味着:mysqli对象在没有先关闭的情况下被重用(不,绝对不是)MySQL服务器端的连接超时变量太小最大数据包大小变量太小但是,我已将超时和最大数据包大小变量设置为其最大值

sql - 我可以始终使用 INSERT ....ON DUPLICATE UPDATE 进行简单的更新/插入吗?

(MYSQL)是否存在任何显着的性能差异,或其他不使用INSERT...ONDUPLICATEUPDATEsql更新PK/插入新内容的原因? 最佳答案 没有,没有。INSERTONDUPLICATEKEYUPDATE将定位记录并更新它就像一个简单的UPDATE会做。事实上这只是一个UPDATE,其次是INSERT应该UPDATE失败。INSERTONDUPLICATEKEYUPDATE可以是分组更新的更快替代方案(当您有一个每个键有多个记录的源表并且希望每个记录递增一次目标表时)。如果每个键的值很少,则此查询:INSERTINTOt

MySQL标记问题: how to select an item that has been tagged as X, Y和Z?

我正在处理一个数据库,其中的项目被“标记”了一定次数。项目(10万行)编号姓名其他内容标签(10k行)编号姓名item2tag(1,000,000行)item_idtag_id计数我正在寻找最快的解决方案:选择已标记为X、Y和Z的项目(其中X、Y和Z对应于(可能)标记名称)?这是我目前所拥有的......我只是想确保我以最好的方式做到这一点:首先从名字中获取tag_ids:SELECTtag.idWHEREnameIN("X","Y","Z");然后我按这些tag_id分组并使用Having来过滤结果:SELECTitem2tag.*,count(tag_id)FROMitem2tag

php time_sleep_until() 和 "Mysql server has gone away"

我有一个必须在每n分钟后执行的脚本。n分钟是动态的,因此我无法设置cron作业来调用脚本(在特定时间)。所以我所做的是将每隔n分钟后的时间存储在一个数组中,以便在执行脚本时,它会首先检查当前时间是否在数组中。如果在数组中找到,则继续执行,否则退出。要执行脚本,我必须使用cron作业每分钟运行一次以检查数组中的时间。不幸的是,我的虚拟主机只允许5分钟作为最短间隔。所以每次调用脚本时,我都会检查是否在数组中找到$current_time和$current_time+(4*60)//4minutes之间的值。如果是,并且如果需要,我会使用time_sleep_until来延迟脚本,直到时间达

MySQL:INSERT IGNORE 或 ON DUPLICATE KEY UPDATE 检查多个列而不是唯一列

如果存在包含特定值的行,我想插入行,如果不存在,则更新它。具体来说:user_id=5,user_zip=12345,distance=600列存在于数据库中。如果我尝试插入user_id=5,user_zip=12345,distance=700它应该只更新distance但我尝试插入user_id=5,user_zip=67890,distance=800它应该插入一个新行。我无法定义列user_zip和distance唯一,因此我可以使用重复键更新。 最佳答案 我认为您误解了ONDUPLICATEKEYUPDATE的工作原理。

mysql - INSERT SELECT ON DUPLICATE UPDATE 的 SQL 语法

我想对一个表中的行进行分组和聚合,然后插入到另一个表中,然后更新聚合值。它的SQL命令是什么?INSERTINTOtbdetail(detail,views)(SELECTdetail,SUM(views)ASviewsallFROMtbGROUPBYdetail)//ONDUPLICATEKEYUPDATEviews=views+viewsall 最佳答案 在MySQL中,当使用INSERT...SELECT语句时,您可以使用VALUES()引用SELECT语句的值之一功能:INSERTINTOtbdetail(detail,vi