2014-01-19 25 views
0

我正在做一個查詢通過在MySQL表來搜索會雖然功能作爲一個變量,這是我到目前爲止有:設置列在MySQL

SELECT strip_tags(html) 
FROM threads 
WHERE 
    strip_tags(html) LIKE :searchQuery 
ORDER BY 
    id; 

,你可以看到這將需要「html」通過strip_tags兩次,因此執行查詢需要更長的時間。我計劃擴大查詢範圍,所以我可以更多地使用strip_tags。

有沒有辦法以另一種方式做到這一點?

謝謝。

+0

你有一個函數定義了一個名爲'strip_tags'?在mysql中沒有一個。 –

+0

是的,我有一個用戶定義的函數。 (摘自http://stackoverflow.com/questions/7654436/what-is-the-mysql-query-equivalent-of-php-strip-tags) –

+0

不錯!然後可能做一個子查詢,所以你只需要調用一次strip_tags就像'SELECT脫離FROM(選擇strip_tags(html)作爲剝離,id FROM線程)t WHERE剝離LIKE:searchQuery ORDER BY id;' –

回答

0

使用的功能strip_tags一旦你可以使用子查詢

SELECT stripped FROM (SELECT strip_tags(html) as stripped,id FROM threads)t WHERE stripped LIKE :searchQuery ORDER BY id; 

或使用HAVING像下面

SELECT strip_tags(html) as stripped FROM threads HAVING stripped LIKE :searchQuery ORDER BY id; 

sqlFiddle