数据结构如下
-------------------------
表A
-------------------------
A0 为自动编号 int
A1 为栏目 ID int
A2 为用户 ID int
-------------------------
表A的值结构
-------------------------
1 16 5
2 16 10
3 16 12
-------------------------
表B(视图)
-------------------------
B.B1替换的结果值
B.B2将要被替换的索引
-------------------------
B表值结构
-------------------------
2 5
3 10
4 12
现在要做一个事情就是 更新 表A.A2的值为 表B.B1SQL语句如下:update 表A set 表A.A2=getID(表A.A2);语句解释:如果 getID(5) 那么返回的将是 2 这个值;这个getID 是 一个自定义函数,其作用是 以 A表.A2的值为索引,查询出视图 B表中以 A表.A2的值为等值条件的B表.B1的值.我现在就是想知道 getID 这个自定义函数怎么写.DELIMITER $$
DROP FUNCTION IF EXISTS `getID` $$
CREATE FUNCTION `getID` (id VARCHAR(25)) RETURNS INT
BEGIN
select B.B1 from B where B.B2=id;
END $$
DELIMITER ; 这样不对,请各位大侠些帮帮忙,谢谢了.
-------------------------
表A
-------------------------
A0 为自动编号 int
A1 为栏目 ID int
A2 为用户 ID int
-------------------------
表A的值结构
-------------------------
1 16 5
2 16 10
3 16 12
-------------------------
表B(视图)
-------------------------
B.B1替换的结果值
B.B2将要被替换的索引
-------------------------
B表值结构
-------------------------
2 5
3 10
4 12
现在要做一个事情就是 更新 表A.A2的值为 表B.B1SQL语句如下:update 表A set 表A.A2=getID(表A.A2);语句解释:如果 getID(5) 那么返回的将是 2 这个值;这个getID 是 一个自定义函数,其作用是 以 A表.A2的值为索引,查询出视图 B表中以 A表.A2的值为等值条件的B表.B1的值.我现在就是想知道 getID 这个自定义函数怎么写.DELIMITER $$
DROP FUNCTION IF EXISTS `getID` $$
CREATE FUNCTION `getID` (id VARCHAR(25)) RETURNS INT
BEGIN
select B.B1 from B where B.B2=id;
END $$
DELIMITER ; 这样不对,请各位大侠些帮帮忙,谢谢了.
DROP FUNCTION IF EXISTS `getID` $$
CREATE FUNCTION `getID` (id INT) RETURNS INT
BEGIN
declare b int;
select B.B1 into b from B where B.B2=id;
return b;
END $$
DELIMITER ;