0

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

例如,我有一个表User( UserId, UserName, UserAddress, UserCity)

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

对不起,如果我的请求听起来很令人困惑。我已经尝试过,但仍然不知道从哪里开始。我试过谷歌搜索并浏览了这个网站,但找不到我真正想要找到的东西。

4

1 回答 1

2

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

在我看来,您似乎还没有理解 SQL 是一种声明性语言,而不是命令性语言。是的,有存储过程,但这些是 SQL 的过程扩展,不会改变 SQL 本质上是声明性的事实。

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

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

SELECT UserId FROM User
 WHERE UserName LIKE 'cook%'
   AND UserAddress LIKE 'sesam%'
   AND UserCity = 'Hamburg';
于 2012-05-16T20:55:14.130 回答