首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在PHP MYSQL中使用MAX()访问带有'fieldName‘的行

无法在PHP MYSQL中使用MAX()访问带有'fieldName‘的行
EN

Stack Overflow用户
提问于 2012-02-11 00:36:07
回答 3查看 529关注 0票数 0

我有一个小的PHP脚本,它有

代码语言:javascript
复制
$query  = "SELECT MAX(id) FROM `dbs`";
//query run 
$row = mysql_fetch_array($result);
$val = $row[0];

它运行得很好,但是我想知道为什么我不能访问带有fieldname的行,比如如果我有这样的

代码语言:javascript
复制
$query  = "SELECT id FROM `dbs`";

我可以使用下面的

代码语言:javascript
复制
$val = $row['id'];

但是每当我使用这个MAX()函数时,我必须更改为

代码语言:javascript
复制
$val = $row[0];

访问这些值

我对此一无所知。任何帮助都将不胜感激。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-11 00:38:26

你需要给它一个别名:

代码语言:javascript
复制
<?php
$query  = "SELECT MAX(id) AS `id` FROM `dbs`";
//query run 
$row = mysql_fetch_array($result);
$val = $row['id'];

编辑:

为了解释这一点,最好显示一个不同查询的示例:

代码语言:javascript
复制
SELECT MAX(`id`) AS `maxId`, `id` FROM `dbs`

使用上面的代码,它将返回与表中的行一样多的两列- idmaxId (尽管由于函数的性质,maxId在每一行中都是相同的)。如果不给它一个别名,MYSQL就不知道该怎么叫它,所以当你返回结果时,它不会有一个关联的名字。

希望这有助于解释这一点。

票数 3
EN

Stack Overflow用户

发布于 2012-02-11 00:38:33

代码语言:javascript
复制
SELECT MAX(id) AS myFieldNameForMaxValue 
  FROM `dbs`

然后

代码语言:javascript
复制
$row = mysql_fetch_array($result);
$val = $row['myFieldNameForMaxValue']; 
票数 1
EN

Stack Overflow用户

发布于 2012-02-11 00:48:08

如果您在mysql命令行上运行此查询,您将看到mysql返回的字段名为MAX(id)。尝试在phpmyadmin上运行,您将看到相同的结果。因此,如果您尝试$row‘’MAX(Id)‘,它将会起作用。当使用mysql函数时,它被添加到名称中,所以使用别名,就像其他人在这里所说的那样,然后就可以开始了:从dbs中选择MAX(id)作为id。另外,别忘了使用`中的` chars, just in case you have some columns/tables with reserved names, like

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9231259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档