草庐IT

insertion-order

全部标签

php - mysql_insert_id() 在 PHP 更新后停止工作

我正准备将实时网络服务器从PHP5.2.12更新到5.3.5。在准备过程中,我在第二台服务器上执行了更新,该服务器是实时服务器(“开发”服务器)的镜像。两台服务器都使用FreeBSD,并且都使用端口来安装PHP和MySQL。实时服务器使用MySQL5.0.89,新升级的开发服务器使用5.1.54。以下代码在实时服务器(PHP5.2.12/5.0.89)上按预期执行,返回刚刚插入的AUTO_INCREMENT行的值。此函数是整个站点使用的数据库类的一部分,其中“$this->_private['cn']”是资源链接。publicfunctioninsert($sql=false){@my

MySQL INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 增量

我在使用INSERTSELECTONDUPLICATEKEYUPDATE查询时遇到一些问题。我想执行一些操作,例如为select返回的每一行插入表中的字段增量,其中一些将需要更新同一行。设置:表格来源CREATETABLE`source`(`key`int(11)NOTNULLAUTO_INCREMENT,`data`int(11)DEFAULTNULL,`state`int(11)DEFAULTNULL,`group`int(11)DEFAULTNULL,PRIMARYKEY(`key`));表目标CREATETABLE`dest`(`dkey`int(11)NOTNULL,`dda

MySql Performance : INSERT. ..ON DUPLICATE KEY UPDATE 或 UPDATE & ROW_COUNT

我查询大部分时间都会更新现有记录。但是,我需要检查此记录是否存在,如果不存在,我应该创建它。通常我会使用INSERT...ONDUPLICATEKEYUPDAT,但由于只需要插入几个查询,我正在考虑执行UPDATE并稍后检查如果返回的ROW_COUNT()为零,并且在这种情况下执行INSERT。什么会给我最好的表现? 最佳答案 MySQL有一个REPLACEINTO语法,这可能就是您正在寻找的。如果这对您不起作用,使用UPDATE并检查ROW_COUNT()应该可行,您可能希望将整个事情包装在存储过程中,这样您就可以节省返回服务器的

mysql - 我们什么时候给 LAST_INSERT_ID() 一个参数?

引自here:mysql>UPDATEsequenceSETid=LAST_INSERT_ID(id+1);mysql>SELECTLAST_INSERT_ID();上面的用例是什么(有什么好处)?我以前从未将LAST_INSERT_ID与任何参数一起使用...更新我的问题是,为什么人们想要以这种方式模拟这种序列,而它可以通过自动递增的主键自动开箱即用? 最佳答案 在不使用AUTO_INCREMENT的情况下生成序列的用例是,当结果ID值用于多个表时,并且它需要在所有表中是唯一的。每个表中的AUTO_INCREMENT通常会导致每个

php - MySQL ORDER BY 结果不是按字母顺序排列的

我一直在努力寻找解决这个问题的方法,但一直没有成功。我知道这里有几个类似的问题,但它们都是更复杂的场景,并不真正适用。好的,问题:我有一个非常简单的表格,其中包含交易收款人及其相关类别的列表。结构为id-int,name-varchar,andcat-varchar我正在尝试执行一个简单的查询以按字母顺序显示收款人姓名,并使用while循环将其添加到选择框中。无论我是否使用ASC或DESC,它们都没有明显的顺序显示条目的开头或结尾没有空格。这是查询-SELECTnameFROMpayeesORDERBYname尝试在phpMyAdmin中按字母顺序对它们进行排序时,我得到了相同的结果。

mysql order by 不是唯一的等级?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowdoIHandleTiesWhenRankingResultsinMySQL?我想按Activepoints对表Status进行排序,并将排名插入列rank中。它来了:RANKUSERNAMEACTIVEPOINTS1monkey100922fresnoJump543otherUser954但它应该显示的不是唯一的排名RANKUSERNAMEACTIVEPOINTS1monkey100922fresnoJump542otherUser954

mysql - 优化 MySQL - WHERE 和 ORDER BY 使用不同的列

我有一个115MByte、1,600,000行的表,用于存储房价和坐标。“SELECT”查询花费的时间太长。我想知道是否有人可以建议加快速度的方法。我的表的稍微简化的版本....CREATETABLE`prices1`(`price`INT(10)NOTNULL,`address`VARCHAR(127)NOTNULL,`lat`FLOAT(6,4)NOTNULLCOMMENT'GPSlatitude',`lng`FLOAT(6,4)NOTNULLCOMMENT'GPSlongitude',INDEX`lat`(`lat`),INDEX`price`(`price`))ENGINE=M

mysql - 如何提高 MyISAM 中 INSERT/UPDATE 查询的性能

我正在使用MySQL数据库,它有两个MyISAM表1.主表(inf_article_details)有10+百万条记录和2.临时(temp_inf_article_details)表有大约50,000多条记录。这些表结构相同,它们只有一列(BIGINT作为数据类型)作为主键。数据定期从不同的数据源提供程序填充到临时表中,我有一个计划的作业将数据从临时表推送到主表中。仅供引用,主表在KEY上被划分为20个分区主表索引信息(inf_articles_details)如下:showindexesfrominf_articles_details;临时表的索引信息(temp_inf_articl

MySQL INSERT 与 CALL

我有一个存储过程,它拆分一个字符串并以一个选择结束。我想在存储过程上运行插入,就像在选择上插入一样像这样INSERTINTO....CALLsp_split...我的拆分看起来像这样:DELIMITER$$CREATEDEFINER=`root`@`localhost`PROCEDURE`split_with_id`(idINT,inputvarchar(1000),delimVARCHAR(10))BEGINdeclarefoundPostinyintunsigned;declaretmpTxtvarchar(1000);declaredelimLentinyintunsigned;

mysql - 具有多个 where 和 order by 子句的慢查询

我正在尝试寻找一种方法来加速缓慢的(文件排序)MySQL查询。表格:categories(id,lft,rgt)questions(id,category_id,created_at,votes_up,votes_down)示例查询:SELECT*FROMquestionsqINNERJOINcategoriescON(c.id=q.category_id)WHEREc.lft>1ANDc.rgt如果我删除ORDERBY子句,它会很快。我知道MySQL不喜欢在同一个子句中同时使用DESC和ASC命令,所以我尝试添加一个复合(created_at,votes_up)索引到question