2

UNIONと組み合わせた2つのテーブル(table_aとtable_b)があります。

レコードが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に対して脆弱です。PDOまたはMySQLi
を使用します。

更新:
どのテーブルから結果が「来た」かを知りたい場合は、クエリを次のように変更できます。

(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 に答える