簡體   English   中英

Mysql Union如何檢查行是否存在?

[英]How to do Mysql Union with check if row exists?

好的,這有點復雜,因為我的表沒有被引用或合並或彼此匹配,所以我不能使用JOIN的表。 我正在建立一個搜索表單,該表單將簡單地匹配多個表中的搜索關鍵字。

我的問題是我必須生成新聞項鏈接,具體取決於結果來自哪個表,但找不到鈎子。 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有34行,另一個區別是表A具有要檢查的行名extra_field並基於該鏈接我的鏈接。

查詢后的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中進行檢查?

請幫忙。 謝謝!

以您的簡短版本為例,您可以在查詢中添加一個額外的列:

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'

然后,您可以在代碼中檢查“源”列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM