求解决mysql创建函数的语法问题

linfengfeiye 2011-04-17 06:41:24
delimiter //
create function getadminname(user varchar(32))
RETURNS CHAR(50)
BEGIN
declare type int(11) default 0;
declare countryid int(11) default 0;
set type =(select type from db1.user_account where user='user');
if exists (select name from db2.country_info where id=(select id from dbpushmail.id_info where user=user)
set countryid =(select channel from db1.id_info where user=user);
return (select Name from db1.name_info where type = type and countryid = countryid );
END
//

这个语法,我Google了一下,没有找到比较全面的语法规则。
试着写了一下,发现在if exists 下面一行提示错误。

请问具体要怎么改呢?
...全文
193 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gungod 2011-04-18
  • 打赏
  • 举报
回复
if exists (select name from db2.country_info where id=(select id from dbpushmail.id_info where user=user)

user加个``
a.`user`=b.`user`
WWWWA 2011-04-18
  • 打赏
  • 举报
回复
DELIMITER //
CREATE FUNCTION getadminname(USER VARCHAR(32))
RETURNS CHAR(50)
BEGIN
DECLARE TYPE INT(11) DEFAULT 0;
DECLARE countryid INT(11) DEFAULT 0;
SET TYPE =(SELECT TYPE FROM db1.user_account WHERE USER='user');
SELECT COUNT(*) INTO @AA FROM db2.country_info WHERE id=(SELECT id FROM dbpushmail.id_info WHERE USER=USER);
IF @AA>=1 THEN
SET countryid =(SELECT channel FROM db1.id_info WHERE USER=USER);
END IF;
RETURN (SELECT NAME FROM db1.name_info WHERE TYPE = TYPE AND countryid = countryid );
END
//

建议将USER VARCHAR(32)中USER更名,与字段名重名?
ACMAIN_CHM 2011-04-17
  • 打赏
  • 举报
回复
delimiter //
create function getadminname(user varchar(32))
RETURNS CHAR(50)
BEGIN
declare type int(11) default 0;
declare b int default 0;
declare countryid int(11) default 0;
set type =(select type from db1.user_account where user='user');

select count(*) into b from db2.country_info where id=(select id from dbpushmail.id_info where user=user)
if b=1 then
set countryid =(select channel from db1.id_info where user=user);
return (select Name from db1.name_info where type = type and countryid = countryid );
END
//
ACMAIN_CHM 2011-04-17
  • 打赏
  • 举报
回复
[Quote]这个语法,我Google了一下,没有找到比较全面的语法规则。[/Quote]

MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
rucypli 2011-04-17
  • 打赏
  • 举报
回复
user=user相当于用于1=1
把输入参数user改成var_user

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧