2012-02-15 3 views
1

OKテーブルが参照されたり結合されたりしていないため、これはちょっと複雑です。私はJOINを使うことができません。私は、複数のテーブルの検索キーワードと単純に一致する検索フォームを構築しています。行が存在するかどうかチェックするためにMysql Unionを実行する方法?

私が持っている問題は、どのテーブルから結果が来たのかに応じてニュースアイテムのリンクを生成する必要がありますが、フックを見つけることができないということです。 MySqlのユニオンは、データがテーブルaまたはテーブルbであるかどうかを確認できない点を除いて完璧に機能します。

here is short version 
SELECT i.title,i.category FROM table_a WHERE REGEXP 'news' 
UNION 
SELECT i.title,i.category FROM table_b WHERE REGEXP 'news' 

今、私のテーブルAには36行があり、テーブルBは、1つの以上の違いは、テーブルAは、私はそれが私のリンクを切り替えるに基づいてチェックしたいと行名extra_fieldを持っている、34を持っています。クエリの後

PHPのスイッチが

foreach($rows as $row) : 
if($row->extra_field): 
$link = 'index.php?".$row->category.$row->title".html' 
else: 
$link = 'index.php?".$row->title".html' 
endif; 
endforeach; 

のようなものかもしれないので、その行が存在する場合は、私のUNION SQLでチェックする方法はありますか?行が存在するかどうかを確認する方法を知っていますが、UNIONでそれを行う方法はありますか?

助けてください。ありがとうございました!

答えて

1

例として、あなたの短いバージョンを使用して、クエリに追加の列を追加することができます。

SELECT i.title,i.category,'a' as source FROM table_a WHERE REGEXP 'news' 
UNION 
SELECT i.title,i.category, 'b' as source FROM table_b WHERE REGEXP 'news' 

は、次に、あなたのコード内で使用すると、「ソース」欄をチェックすることができます。

関連する問題