2

我有两个表(table_a 和 table_b)与一个 UNION 相结合。

如何检查是否记录 ist table_a。

我试过这个,但不工作:

$res=mysql_query("(SELECT id, added FROM table_a WHERE user_id = '".$uid."') 
UNION 
(SELECT id as comments, added FROM table_b WHERE user_id = '".$uid."') ORDER BY added DESC LIMIT 50");

if(!empty($rows["comments"])) // not working
4

1 回答 1

3

它不起作用,因为您忘记阅读结果集:

while ($row = mysql_fetch_assoc($res)) {
// here you read $rows["comments"] etc
...

}

重要提示:
请不要使用mysql_*函数,它已被弃用(见红色框)并且容易受到 sql-injection 的影响。
使用PDOMySQLi

更新:
如果您想知道结果“来自”哪个表,您可以将查询更改为:

(SELECT id, added, 'A' as came_from FROM table_a WHERE user_id = '".$uid."') 
UNION 
(SELECT id as comments, added, 'B' as came_from FROM table_b WHERE user_id = '".$uid."') ORDER BY added DESC LIMIT 50

然后检查以下值:$rows["came_from "]

于 2013-01-01T01:24:48.807 回答