求解决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 下面一行提示错误。

请问具体要怎么改呢?
...全文
181 5 打赏 收藏 转发到动态 举报
写回复
用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
《PHP5+MySQL 网站开发实例精讲》全面、详细地介绍了基于PHP和MySQL的动态网络开发技术的原理和基础编程知识。全书共分为四篇18章,以“PHP基础知识→MySQL数据库基础知识→PHP高级开发→常用模块编程与综合案例开发”为线索具体展开,不仅包括PHP开发环境的搭建、PHP的基本语法、PHP中的常用函数、在MySQL创建数据库和数据表,以及对MySQL数据库进行查询、删除、更新和排序等基础开发知识,还包括在PHP中创建图像、使用会话等较深入的开发内容,并在“常用模块编程和综合案例开发”篇中给出了常用模块(如通信录模块、计数器模块、文件上传模块、图片浏览模块和聊天室模块等)的开发方法,以及文件管理系统、投票系统、影碟管理系统、新闻发布系统和网上购物商城5个综合案例的开发全过程。  全书内容由浅入深,充分考虑了PHP学习者的特点,并在配套光盘中提供了书中实例的全部源代码,以方便读者举一反三,编写出适合自己的程序。 《PHP5+MySQL 网站开发实例精讲》不仅合适PHP技术的初学者,还能够帮助有一定编程经验的PHP开发人员解决开发过程中遇到的实际问题。《PHP5+MySQL 网站开发实例精讲》可作为广大PHP学习者的自学用书,或高等院校相关专业的教材和辅导用书。 显示更多 显示更少 --------------------------------------------------------------------------------

56,675

社区成员

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

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