草庐IT

gplus_id

全部标签

PHP 从 MySQL 表中选择最大的 `id` 值

我有一个包含超过300000行的表,我需要为“id”列选择最高值。通常,我会这样做:SELECTidFROMmy_tableORDERBYidDESC...但这会导致查询速度变慢,我不想使用它。有没有不同的方法来解决这种情况?id是自增主键。稍后编辑:看来我的完整代码写得相当糟糕,正如我从您的评论中推断的那样。下面我发布了我正在使用的代码示例和表格。你能建议一种在两个表(包括table_x本身)中插​​入table_x的最后一个ID+1的正确方法吗?我不得不提到脚本将运行不止一次。TABLE_XTABLE_Y----------------------id_x|valueid_y|id

mysql - 如何使用 MIN() 函数获取 mysql 中最小数字的 id

样本表id|name|price|-----------------------1|john|300|-----------------------2|michael|400|-----------------------3|michelle|250|-----------------------我将使用这个查询得到表中最小的数字SELECTid,name,MIN(price)FROMtable结果会变成这样:_______________________id|name|price|-----------------------1|michelle|250|我希望结果会变成这样:id|

mysql 更改列 id 以从 1 开始并从那里自动递增

我在phpmyadmin中查看我的表并注意到ID从13410开始并增加1。我想重置并从1开始。我读过很多人说最好不要管它,否则如果你搞砸了它会变得复杂,但我仍然需要一个解决方案至少从1开始id。谢谢 最佳答案 ALTERTABLEtableAUTO_INCREMENT=1http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html我希望你知道你在做什么! 关于mysql更改列id以从1开始并从那里自动递增,我们在St

mysql - 从 MySQL 中的 TRIGGER 中更改 LAST_INSERT_ID()

我有一个BEFOREINSERTTRIGGER用于计算AUTO_INCREMENT列的值(id_2)。id_1|id_2|data1|1|'a'1|2|'b'1|3|'c'2|1|'a'2|2|'b'2|3|'c'2|4|'a'3|1|'b'3|2|'c'我有PRIMARY(id_1,id_2)并且我正在使用InnoDB。之前,该表使用的是MyISAM,我没有遇到任何问题:id_2被设置为AUTO_INCREMENT,因此id_1的每个新条目会生成新的id_2在其自己的。现在,在切换到InnoDB之后,我有这个触发器来做同样的事情:SET@id=NULL;SELECTCOALESCE(

php - mysql_insert_id 和 last_insert_id 错误行为

我有这张tableCREATETABLEIFNOTEXISTS`t5`(`id`int(11)NOTNULLauto_increment,`a`int(11)NOTNULL,`b`int(11)NOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`a`(`a`,`b`))ENGINE=InnoDBDEFAULTCHARSET=latin1;a_b是唯一键。我有这样的php代码$db=DBFactory::getInstance();$db->selectDB('test');$db->query("insertintot5(a,b)values(1,1)onduplic

php - Laravel - 多行插入和检索 id

我正在使用Laravel4,我需要将一些行插入到MySQL表中,并且我需要取回它们插入的ID。对于单行,我可以使用->insertGetId(),但是它不支持多行。如果我至少可以像普通MySQL那样检索第一行的ID,就足以找出其他行。 最佳答案 这是mysql的行为last-insert-idImportantIfyouinsertmultiplerowsusingasingleINSERTstatement,LAST_INSERT_ID()returnsthevaluegeneratedforthefirstinsertedrow

MySQL (id >= N AND col2 IS NULL) 查询对于大 N 意外地慢

我们使用的是MySQL5.5.42。我们有一个表publications,其中包含大约1.5亿行(在SSD上大约140GB)。该表有很多列,其中有两列特别重要:id是表的主键,类型是bigintcluster_id是bigint类型的可为空的列两列都有自己的(单独的)索引。我们对表单进行查询SELECT*FROMpublicationsWHEREid>=14032924480302800156ANDcluster_idISNULLORDERBYidLIMIT0,200;Hereistheproblem:Thelargertheidvalue(14032924480302800156in

php - 隐藏数据库ID

我有一个主键自动递增的表。我想要一个与主键相关联的图像,但我不希望主键被泄露。将图像命名为:$filename=md5($primarykey+$secret_string).'.jpg';是一个好的解决方案吗?我担心会发生碰撞,导致文件被覆盖。当然,另一种选择是生成一个随机字符串,检查它是否作为文件存在并将其存储在数据库中......但是如果不需要,id不希望存储额外的数据。另一种选择是逻辑转换youtubeurl样式,例如1=a2=b但具有随机顺序,例如1=x2=m...但是它有可能被解码...加上md5可能比任何youtubeurl函数都轻。我想我正在处理超过200万条记录,那么

php - 通过 PHP 使用 LAST_INSERT_ID()?

当我在MySQL控制台中执行以下命令时,它工作正常:INSERTINTOvideos(embed_code)VALUES('testcodehere');SELECTLAST_INSERT_ID();但是,当我通过PHP执行上述查询时,结果为空。在数据抽象下,我使用了一个名为DB的数据库访问类。这就是我通过PHP尝试上述查询的方式:$embedCode=htmlentities($_POST['embed_code']);//Insertvideoindatabase**WORKS**DB::query("INSERTINTOvideos(embed_code)VALUES('$emb

Mysql选择下一行和上一行不按id排序

我有一个按NAME排序的查询,返回的smt是这样的:IDNAME2121927AAA2123589AAB2121050AAC2463926BBB--->knownID2120595CCC2122831DDD2493055EEE2123583EEF我需要知道已知ID&&NAME的下一个ID和上一个ID(如果存在)怎么可能只有1个查询? 最佳答案 SELECT*,'next'FROMtableWHERE`name`>'BBB'ORDERBY`name`LIMIT1UNIONSELECT*,'previous'FROMtableWHERE