草庐IT

insert_or_modify

全部标签

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

php - 也许 mysql_insert_id() 会返回意外的 id

也许我的问题很愚蠢,但关于mysql_insert_id()我想知道一件事。在php.net上是这样写的:RetrievestheIDgeneratedforanAUTO_INCREMENTcolumnbythepreviousquery(usuallyINSERT).如果在脚本到达使用mysql_insert_id()的行之前,另一个脚本在数据库中插入一些东西,这个函数的输出是什么?据我所知,它将返回最后插入的项目的ID(无论从哪里)。如果我是对的,我想知道如何避免这个问题,但是在执行插入查询时立即使用mysql_insert_id()(因为仍然有一点机会陷入“麻烦”)。

mysql - SQLSTATE[42000] : Syntax error or access violation: 1286 Unknown table engine 'InnoDB'

有些人可能会说“其他线程中有很多答案”或“谷歌搜索”。但实际上我没有找到答案。我正在使用symfony开发一个PHP/MySQL项目,出于未知原因(意思是“我没有写任何php行”),我得到了这个错误“SQLSTATE[42000]:语法错误或访问冲突:1286未知表引擎“InnoDB””。我已经尝试过这些解决方案:重启MySQL停止MySQL,删除ib_logfile0和ib_logfile1,启动Mysql做一个“展示引擎”。此命令不返回“InnoDB”的任何实例。甚至没有“不活跃”(很奇怪,对吧?)。(甚至更奇怪)PHPMyAdmin显示所有表,除了使用InnoDB的表显示“已使用

mysql - InnoDB 上的一个简单的 INSERT 查询花费太多

我有这个简单的查询:INSERTIGNOREINTObeststat(bestid,period,rawView)VALUES(4510724,201205,1)在table上:CREATETABLE`beststat`(`bestid`int(11)unsignedNOTNULL,`period`mediumint(8)unsignedNOTNULL,`view`mediumint(8)unsignedNOTNULLDEFAULT'0',`rawView`mediumint(8)unsignedNOTNULLDEFAULT'0',PRIMARYKEY(`bestid`,`period

php - INSERT 语句之谜——mysql_query 返回 true,但数据库中没有新行出现

我一定是在做傻事。我已经对此问题进行了3天的故障排除,但没有成功。这是发送到mysql_query()的PHP字符串:insertintopost_replies(postID,fromID,toID,status)values($id,$userID,$toID,".g_unread.")在你说“啊哈,SQL一定有错误”之前,请注意以下两点:mysql_query()返回真(1)在发送到mysql_query()之前,我将字符串导出到一个文本文件(见下文)-如果我将导出的文本粘贴到同一个mysql_query()语句中,它工作正常(出现新行)-如果粘贴导出的文本进入phpMyAdmi

mysql - 插入非常大的 insert 到 mysql,max_packet_size

我们正在尝试安装manatee软件,但出现此错误。mysql-umanateecgspu-p--max_allowed_packet=4096MMysql确实设置了max_allowed_pa​​ckets,我们用mysql--help检查显示max_allowed_packet2147483648有什么办法可以避免这种情况吗?我不得不从初始数据库中删除那一行填充makefile甚至让它安装软件。现在我在数据库之外留下了一行,无法插入它。 最佳答案 编辑:您可能需要在服务器上设置max_allowed_pa​​cket。试试这个:(

结合 AND/OR 的 MySQL 多对多条件

我的mysql查询有问题,这是一个与Mysqljoinqueryformultiple"tags"(many-to-manyrelationship)thatmatchesALLtags?相关的复杂问题所以我有经典的MN表模式:Item1|Item12|Item2...Category1|Category12|Category23|Category34|Category4...Item_has_category1|1...问题是-如何获取行,其中item具有Category1ORCategory2和类别3?针对一些复杂的filter,一些categories有一个特殊的分组,必须用AN

PHP/MYSQL - Insert into ignore,忽略指定列

如果数据尚不存在,我只需要插入一行,日期列除外,它总是不同的,所以它总是会插入一个新行,即使它不应该插入。我的代码:$postID=$_POST['postID'];//example,817$userID=logged_in();//example,2$date=time();mysql_query("INSERTIGNOREINTOlikesSETuserID='$userID',postID='$postID',date='$date'");我希望能够做这样的事情:mysql_query("INSERTIGNOREdateINTOlikesSETuserID='$userID',

php - HTML 公式 : MySQL or PHP?

我正在开发一个MySQL/php项目,我遇到过从MySQL获取查询结果并将它们转储到HTML表中的情况。现在我将表中特定列的单元格包装在一些anchor标记中,我只是想知道在php或MySQL查询本身中进行包装是更好还是更有效,例如:...$row_results_from_query['user']=''.$row_results_from_query['user'].'';...或使用查询SELECT...,CONCAT("",Users.user,"")FROM...我认为php方式更快,但我发现somearticle这表明在某些方面MySQL更快。什么是最佳实践?为什么?或者,

php - 如何使用 Codeigniter db->insert() 方法在 MySQL 中添加日期

我正在使用我的表单在MySQL中保存出生日期db->insert()方法,但它没有正确插入数据库。如何在MySQL中以正确的日期格式保存输入字段值?(在MySQL中,dob的类型也设置为“DATE”。) 最佳答案 MYSQLDATE-YYYY-MM-DD格式的日期所以需要通过sql或者php进行转换PHP$date=date('YYYY-MM-DD',strtotime($old_date));$date=date('Y-m-d',strtotime($old_date)); 关于php