【发布时间】:2013-04-24 09:26:38
【问题描述】:
我在数据库中有一个表tags,我想创建一个基于添加值的查询,如果标签不存在name,则选择下一个ID,如果名称存在则选择标签ID
我创建了一个简单的代码:
DELIMITER $$
USE `cc`$$
DROP FUNCTION IF EXISTS getTagId$$
CREATE FUNCTION getTagId (tag CHAR(20)) RETURNS INT CHARSET utf-8
BEGIN
DECLARE id INT
set @id = (select id from tags where name = @tag)
if (@id is null) then
insert into tags(name) values(@tag)
set @id = (select last_insert_id())
end if
SELECT @id
END
delimiter;
但是这段代码不起作用(这是我在 MySQL 中的第一个函数)。
我想在单个查询中向数据库添加更多标签,然后是 10 个,您对如何优化有什么想法吗?
【问题讨论】:
-
哪种方式不起作用?
-
嗯,这是一个非常简单的操作,所以效率很高。 MySQL 中的函数效率不高(除非它们节省大量网络流量,但事实并非如此)。
标签: mysql sql database stored-functions