2012-07-21 96 views
2

如果我有一個SQL查詢中的功能,例如,如果我有意見,我想驗證SQL裏面如果評論有一個最小字符在列表中顯示:我如何在SQL查詢中使用SQL值作爲參數函數?

$bdd->query('SELECT id, comment FROM comments WHERE count > '. count_chars("id").' ORDER BY time'); 

所以問題是:我該如何使用id作爲這個函數的參數?

+0

檢查這些:http://stackoverflow.com/questions/1406257/ mysql-query-with-php-function-compare和http://stackoverflow.com/questions/4750891/a-php-function-inside-a-mysql-query – 2012-07-21 16:48:34

+0

你正在使用哪些DBMS? PostgreSQL的?甲骨文? DB2? – 2012-07-21 17:52:58

+0

即時消息mysql – user850690 2012-07-22 09:33:57

回答

0

您正試圖在SQL查詢中使用PHP函數來設置查詢的結果。 但是,PHP是而不是涉及查詢過程。它只會將查詢發送到數據庫,並在數據庫中進行實際處理。因此,在查詢中使用PHP函數將始終產生一個靜態值,該值在數據庫遍歷行時不會更改。 因此,您需要使用SQL函數,即LENGTH()。

例如只選擇具有超過50個字符的評論:

$bdd->query('SELECT id, comment FROM comments WHERE LENGTH(comment)>50 ORDER BY time') // 

注:此功能可能被稱爲LEN,這取決於你的MySQL版本