我正在使用mysql_fetch_array()来执行此操作,并通过phpMyAdmin测试我的查询。而且,正如我认为它们都在同一行上一样,是否可以使用mysql fetch array()来做到这一点?

这是我的代码:

$sql="SELECT xml FROM g2s_api_logs WHERE functioncode='MQX' AND cardnumber= '$cardnumber' AND
            direction='out' AND date(datetime)='$date' AND time(datetime)='$time' UNION SELECT xml FROM
            g2s_api_logs WHERE functioncode='MQX' AND cardnumber= '$cardnumber' AND direction='in' AND
            date(datetime)='$date' AND time(datetime)='$time' ";
            $query= mysql_query($sql)or die(mysql_error().$sql);
            $array=mysql_fetch_array($query,MYSQL_ASSOC);
            $result= htmlspecialchars($array['?']);
            $response=htmlspecialchars($array['?']);
            mysql_close();


请忽略问号;我不知道该放什么。我使用phpMyAdmin运行了它,并且它起作用了。但是,我想在我的显示器中将其结果分开。即使他们在同一行中,我也可以这样做吗?是否有获取列之类的东西?

最佳答案

如果您有这样的查询:

select * from X where ...
union
select * from Y where ...


并且您想知道某个特定的行是否来自X或Y,那么您可以向SELECT子句添加一个文字值以区分它们:

select 'X' as came_from, * from X where ...
union all
select 'Y' as came_from, * from Y where ...


只要列名/别名和类型匹配,UNION都会对这种事情感到满意。

08-08 01:17