2016-12-30 13 views
0

我有一個表視頻的信息,當有人在我的網站上選擇一個視頻我有一個小部分,顯示所有其他具有類似標籤的視頻。現在,我想排除當前選中的視頻。這裏是我的查詢:選擇類似的視頻,除了當前的使用MySQL

SELECT video_title, video_desc 
FROM videos WHERE tags LIKE 
$CurrentTags AND 
'$CurrentVideo' NOT IN 
(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo') 

的查詢工作正常(如沒有錯誤),但有時仍然會返回我已被選中的視頻。我認爲這很明顯,但無論如何我會澄清

$ CurrentTags是一組當前選定的視頻在網站上的標籤。

$ CurrentVideo是當前在網站上選擇的視頻的唯一視頻ID。

回答

1

這必須是與您的QUER無子查詢:

SELECT video_title, video_desc 
FROM videos 
WHERE (
    tags LIKE $CurrentTags 
OR 
    tags LIKE $otherTags 
OR 
    tags LIKE $otherTags 
) 
AND 
    video_id <> '$CurrentVideo'; 
+0

還給我一個已經選擇的視頻。真的沒有道理。 – Vortic

+0

向我們顯示帶參數的執行查詢。只有當$ CurrentVideo錯誤時纔會出現錯誤 –

+0

我剛剛檢查過,如果我直接將查詢寫入CMD,那麼它會正確排除和$ CurrentVideo。然後我在現場回覆了$ currentVideo,並且100%正確。我認爲這肯定是$ CurrentTags的一些問題,因爲在CMD中,我只用一個標籤來測試,而在網站上有多個。 – Vortic

0

(SELECT video_id FROM videos WHERE video_id = '$CurrentVideo')。該子查詢返回與輸入相同的輸出。你已經有視頻ID;你不需要再次選擇它。你在那裏嘗試過一個不平等的運營商嗎?此外,你正在比較它本身,不是嗎?試試這個:

video_id <>'$CurrentVideo'