【发布时间】:2017-07-01 07:16:19
【问题描述】:
我刚开始学习在MYSQL 中使用定义的函数,并且尝试了一些基本示例,但是当我尝试返回varchar 的函数时,它实际上返回了select query 的一部分,它给了我一些意想不到的东西。
数据库中有很多表,其列为id 和name,因此每当人们想要为特定的name 获取id 或反之亦然时,他们都会进入表并手动获取数据。所以我试图创建一个可以使过程更顺畅的函数。
这是我的功能
create function getTableDetails(table_name varchar(20), id int(5), name varchar(20))
returns varchar(50)
begin
return " * from " + table_name + " where id = " + id +
" or name like '%" + name + "%'";
end
如您所见,我正在尝试概括所有表的查询,它返回除 select 关键字之外的所有内容。
现在我的查询将类似于select getTableDetails('classes', 2, 'a')
假设函数的返回将填充查询的其余部分并给我表数据,但我得到的结果集是
getTableDetails('classes'; 2; 'a')
2
getTableDetails('classes'; 2; 'a') 是标题。
我哪里错了?
【问题讨论】:
标签: mysql select user-defined-functions