使用RTRIM()或UPPER()时,PHP MYSQL查询列不返回

时间:2011-08-08 17:31:23

标签: php mysql

超级简单查询:

mysql_connect($server ,$username,$password);

@mysql_select_db($database) or die( "Unable to select database");

$query="SELECT RTRIM(a.Name), a.Age, a.Sex, a.GunTime, a.Pace, b.Name as Race,  
a.RaceDate from 5K as a Join RaceIDs b on a.RaceID = b.ID Order By GunTime asc";

$result=mysql_query($query);

执行此查询时,除a.Name外,所有列都返回。如果我删除RTRIM(),则a.Name列将按预期返回。同样,如果我传递UPPER(a.Name),那么该列为空。如果我删除UPPER(),那么a.Name就会很好。

为什么我不能在标准MYSQL(v5.1)函数中包装这些表别名参数的任何线索?

1 个答案:

答案 0 :(得分:3)

为函数包装列提供列别名:

SELECT RTRIM(a.Name) AS Name ...

现在,当您获取结果(mysql_fetch_assoc()mysql_fetch_array())时,结果行中将存在Name列。 ($row['Name'])

否则,该列在技术上是存在的,但在使用PHP获取时,您必须将其引用为RTRIM(a.Name)($row['RTRIM(a.Name)'])