我完全卡住了這一點,:如何將變量值傳遞給存儲過程在mysql中的全文語句?
SET @req='sometingToFind'
SELECT COUNT(id) FROM mytable WHERE MATCH(descr) AGAINST(@req IN BOOLEAN MODE);
這工作得很好,但是當我做同樣的到存儲過程聲明,如:
CREATE PROCEDURE `search_proc`(tn VARCHAR(32), r VARCHAR(60))
BEGIN
SELECT COUNT(id) FROM tn WHERE MATCH(descr) AGAINST(r IN BOOLEAN MODE);
END
並運行它:
SET @req='sometingToFind'
CALL search_proc('mytable','@req');
我有一個錯誤導致曲解引號。
> ERROR 1146 (42S02): Table 'mybase.tn' doesn't exist
我嘗試過各種替代方案,在存儲過程等,而所有這些沒有工作與「R」更換[R。
謝謝!這工作。 但有一點薄霧在那裏。 '執行stmt使用@match_against;' – rbgall 2012-04-05 16:19:31
謝謝,我修復了錯字:) – 2012-04-05 16:24:08
如果動態表名不好,我應該如何在多個表中進行搜索請求?我使用php + mysql環境。 – rbgall 2012-04-05 16:43:38