質問

phpMyAdminには、それが私には、右に見える、その権利をかなり確信して、このMySQLのイムを拒否し続け、実際にそれを実行する必要はありません、そのユニの仕事をしてただで手に持っています。

私が手に実際のエラーがある

#1064 - 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 'END' at line 23 

私は追加と削除で遊んで試してみました。助けそのうちLIMITとENDの地獄にあった私は愚かなことだ?

CREATE PROCEDURE topFive(
   IN PID VARCHAR(6),
   IN CID VARCHAR(6)
)
BEGIN

SELECT `OrderItem`.`ProductID` , COUNT(*) AS `Popularity`
FROM `OrderItem`,
(
SELECT `Order`.`OrderID`
FROM `OrderItem`,`Order`
WHERE
(`Order`.`OrderID`=`OrderItem`.`OrderID`)
AND 
(`OrderItem`.`ProductID`=PID)
AND
(`Order`.`CustomerID`!=CID)
) AS `ORDER_ID_TABLE`
WHERE  (`OrderItem`.`OrderID` = `ORDER_ID_TABLE`.`OrderID`)
GROUP BY `OrderItem`.`ProductID`
ORDER BY `Popularity`
LIMIT 0,5

END

おかげで^ _ ^

役に立ちましたか?

解決

あなたは区切り文字を変更する必要があります。 MySQLクライアントにおいて、少なくとも、あなたは次の操作を行います。

DELIMITER //

CREATE PROCEDURE topFive(
   IN PID VARCHAR(6),
   IN CID VARCHAR(6)
)
BEGIN

SELECT `OrderItem`.`ProductID` , COUNT(*) AS `Popularity`
FROM `OrderItem`,
(
SELECT `Order`.`OrderID`
FROM `OrderItem`,`Order`
WHERE
(`Order`.`OrderID`=`OrderItem`.`OrderID`)
AND 
(`OrderItem`.`ProductID`=PID)
AND
(`Order`.`CustomerID`!=CID)
) AS `ORDER_ID_TABLE`
WHERE  (`OrderItem`.`OrderID` = `ORDER_ID_TABLE`.`OrderID`)
GROUP BY `OrderItem`.`ProductID`
ORDER BY `Popularity`
LIMIT 0,5//

END
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top