繁体   English   中英

“COUNT (*)”附近的语法错误?

[英]Syntax error near “COUNT (*)”?

我想做一个交互式存储过程,我的意思是,执行后用户应该输入一个词

我写了这个,但它不起作用..

DELIMITER $$

DROP PROCEDURE IF EXISTS ric_forn$$
CREATE PROCEDURE  ric_forn (IN nome_forn VARCHAR(100) , OUT msg VARCHAR(100))
BEGIN
DECLARE num_rec INT;

IF (nome_forn = '') THEN 
    SET msg = "Attenzione il nome inserito non è valido !";
END IF;

SELECT COUNT (*) INTO num_rec FROM Fornitori WHERE Des_Fornitore = nome_forn;

IF num_rec = 0 THEN
    SET msg = "Nessun record trovato !";

ELSE

SELECT Id_Fornitore,Des_Fornitore,Ind_Fornitore WHERE Des_Fornitore = nome_forn;
    SET msg = "Records trovati:";

END IF;

END$$

DELIMITER ;

我收到此错误:

您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册,以获取在 '*) INTO num_rec FROM Fornitori WHERE Des_Fornitore = nome_forn; 附近使用的正确语法。

COUNT(*)之间的空格很重要。 你应该把它们放在一起,不要留空隙。

SELECT COUNT(*) INTO ...

例外是如果您SET SQL_MODE='IGNORE_SPACE' 阅读函数名称解析和解析以获取更多详细信息。


您的另一个错误是您忘记了其中一个查询中的FROM子句:

SELECT Id_Fornitore,Des_Fornitore,Ind_Fornitore WHERE Des_Fornitore = nome_forn;

应该:

SELECT Id_Fornitore,Des_Fornitore,Ind_Fornitore FROM Fornitori
WHERE Des_Fornitore = nome_forn;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM