【发布时间】:2020-10-22 08:56:09
【问题描述】:
我想获取表中的所有行,其中“评论”列可以包含另一个表的值:
表 T1 中的行名称包含名称列表。
表T2中的行注释复合字符串,注释中可以嵌入一个名称。
我尝试执行下一个PLSQL代码:
BEGIN
SET @SearchCriteria = (SELECT * FROM names);
SET @SearchCriteria = '%' + @SearchCriteria + '%';
SELECT * FROM ticket WHERE comment LIKE @SearchCriteria;
END
但它返回:子查询返回多于 1 行
另外,我执行了以下过程,但没有得到任何结果:
BEGIN
DECLARE nm VARCHAR(16);
DECLARE cur1 CURSOR FOR SELECT nm FROM names;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO nm;
set @name = '%'+nm+'%';
SELECT * FROM ticket WHERE comment LIKE @name;
END LOOP;
CLOSE cur1;
END
之前的代码需要很长时间才能得到结果,所以我在 phpmyadmin.conf 中更改了 max_execution_time 的值。
MYSQL 版本:5.6.17
我怎样才能得到正确的结果?
【问题讨论】:
-
这是一个常见问题解答。请在考虑发布之前阅读您的教科书和/或手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。
标签: mysql join select stored-procedures subquery