gpt4 book ai didi

mysql - 在mysql中编写存储过程时遇到locate问题

转载 作者:行者123 更新时间:2023-11-29 23:20:31 26 4
gpt4 key购买 nike

我正在尝试创建一个过程,该过程将采用包含书籍信息(标题、作者、出版商等)的字符串,并将该数据插入到多个表中。由于没有编写其中的许多代码,我试图一步一步地完成该过程,并达到了这一点:

create procedure AddBook(in details varchar(255),
out new_title varchar(255),
out new_author varchar(255),
out new_pname varchar(255),
out new_paddress varchar(255),
out new_pphone char(10),
out my_index int)
begin
Declare title varchar(255);
Declare author varchar(255);
Declare pname varchar(255);
Declare paddress varchar(255);
Declare pphone char(10);
Declare curIndex int;
Declare bid int;
Declare temp varchar(255);

set details = trim(details);

set curIndex = locate(',', details);
set title = substring(details, 1, curIndex - 1);

set temp = substring_index(details, ',', 2);
set author = substring(temp, locate(temp, ',', 1) + 1);

最后一行是我陷入困境的地方。不管出于什么原因,locate 返回 0,即使我知道 temp 中有一个逗号。我的输入是

call AddBook('my book, George Foreman, pub4, 189, 1234567890', @title, @author, @pname, @paddress, @pphone, @index);

所有输出变量均用于调试,稍后将被删除。我发现 temp 最终的值是“我的书,George Foreman”,但locate 找不到逗号(有或没有第三个参数。有什么我遗漏的吗?

最佳答案

总是有一些简单的错误让我困扰。 Locate 首先获取您要查找的子字符串,然后获取您要搜索的字符串。我传入的参数不正确。

关于mysql - 在mysql中编写存储过程时遇到locate问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com