搜索结果集中的多次搜索(存储过程)

时间:2012-05-16 20:27:21

标签: sql stored-procedures

在使用该会话中使用的所有搜索字词时,在搜索结果集中进行多次搜索。

例如,我有一个表UserUserId, UserName, UserAddress, UserCity

我想要做的是,我想搜索表中的所有列,例如使用用户的名称(这可能会给我一个包含多于1个结果的结果集)。我希望能够使用新的搜索词再次在结果集中搜索(不一定必须在搜索字段中包含第一个搜索词),但这次,它必须在第一个搜索的结果集中搜索。这可能会分解结果集,直到找到所需的内容。

很抱歉,如果我的请求听起来很混乱。我已经尝试过但仍然不知道从哪里开始。我试过谷歌搜索和浏览这个网站,但找不到我真正想要找到的东西。

1 个答案:

答案 0 :(得分:2)

  

我希望能够使用new再次在结果集中进行搜索   搜索词[...],但这一次,它必须在结果集中搜索   第一次搜索。这可能会继续分解结果集直到   找到了所需要的东西。

在我看来,你还没有意识到SQL是一种声明性语言,而不是命令式语言。是的,有存储过程,但这些是SQL的过程扩展,并不会改变SQL本质上是声明性的事实。

因此,除了“分解结果集直到找到所需内容”之外,您一次指定所有条件,并且最好不要求助于存储过程直到您理解为止非过程SQL。

举个例子,使用多个谓词的查询(关于WHERE子句中指定的所需结果的事实)可能如下所示:

SELECT UserId FROM User
 WHERE UserName LIKE 'cook%'
   AND UserAddress LIKE 'sesam%'
   AND UserCity = 'Hamburg';