我得到通過發送下面的查詢(MYSQL 5.0)的錯誤:MySQL的程序語法錯誤
DELIMITER //
CREATE PROCEDURE relationTable()
BEGIN
DECLARE articlecount int;
DECLARE keywordcount int;
DECLARE articlehits int;
DECLARE ac int DEFAULT 0;
DECLARE kc int;
DECLARE articleid int;
DECLARE word varchar(100);
DECLARE word_id int;
SET articlehits = 0;
SET articlecount = (SELECT count(id) from articles);
SET keywordcount = (SELECT count(id) from keywords);
outerloop: WHILE (ac < articlecount) DO
SET kc = 0;
SET articleid = (SELECT id from articles LIMIT 1 OFFSET ac);
innerloop: WHILE (kc < keywordcount) DO
IF (articlehits < 5) THEN
SELECT keyword, id INTO word, word_id from keywords LIMIT 1 OFFSET kc;
IF (0 < (SELECT COUNT(id) from articles WHERE id=articleid AND CONCAT(title, " ",text) REGEXP word)) THEN
INSERT INTO articles (id, articleID, keywordID, type) VALUES(NULL, articleid, word_id, 'type1');
SET articlehits = articlehits + 1;
END IF;
SET kc = kc + 1;
ELSE
SET kc = keywordcount;
END IF;
END WHILE innerloop;
SET ac = ac + 1;
END WHILE outerloop;
END;
//
DELIMITER ;
這將產生以下錯誤:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1 OFFSET ac); innerloop: WHILE (kc < keywordcount) DO TO word, word_id from' at line 15
任何想法,爲什麼出現這種情況?
(寫到這來創建文章和關鍵字之間的關係表,以便在文章視圖智能鏈接。)
1.錯誤報告中的單詞DO和單詞片段TO是你問題的一部分的奇怪跳過? – 2012-02-11 14:55:40
2.是否可能需要SELECT INTO用戶定義的變量而不是聲明的過程變量? – 2012-02-11 14:58:25
你是什麼意思的「用戶定義」變量? – enigma 2012-02-11 15:43:21