2012-01-31 31 views
1

我需要使用mysql/java代码实现嵌套搜索(意味着在先前搜索的记录中说搜索记录)。 例如,首先我搜索一个条件为(如'%abc%'的名字)的表,并为此获得了1000行,现在我想在这1000行上应用新的搜索条件(姓氏如'%xyz%')只适用于该表中的所有行。java mysql嵌套搜索实现

任何人都可以让我知道如何实现这个? 有没有DB(mysql)本身提供的任何功能?

正如我所提到使用者施加来自第一搜索结果接收到的记录第二搜索,它不是像用户同时给出两个输入和第二搜索是不可预测它可以在任何列中的任意搜索。

在此先感谢。

回答

0
SELECT ... FROM some_table WHERE firstname like '%abc%' AND lastname like '%xyz%' 
+0

感谢您的快速答复,但它不是答案我要找因为,正如我所提到的,用户对从第一个搜索结果收到的记录应用第二次搜索,它不像用户同时提供两个输入,而第二个搜索不可预测,它可以是任何列上的任何搜索。 – SmartSolution 2012-01-31 11:22:10

1

下面的代码

select * from myTable where (firstname like '%abc%' AND lastname like '%xyz%'

select * from myTable where firstname like '%abc%' AND lastname like '%xyz%'

由于我没有与我的MySQL现在,我无法检查哪一个会使用工作...但我认为与支架一将工作...

祝你好运!

+0

帕克:感谢您的快速答复,但它不是我期待的,正如我所说的用户的回答应用从第一个搜索结果收到了关于记录第二次搜索,它不是像用户同时提供了两个输入和第二次搜索是无法预测它可以在任何列上进行任何搜索。 – SmartSolution 2012-01-31 11:22:29

+0

那么你可以通过使用'myString.indexof(“XYZ”)> = 1' – 2012-01-31 11:24:33

+0

及其Parkar不帕克:) – 2012-01-31 11:25:25

0

您可以直接申请AND如果你还是想要去subQuerwy

SELECT ID, NAME from TABLE_NAME WHERE fname like '%j%' AND ID IN 
(SELECT ID FROM TABLE_NAME WHERE lname like '%J%'); 

但对于简单的晃动你应该去AND

+0

谢谢哥们,请再次阅读的问题,我想申请嵌套的搜索方式想要在以前的搜索结果上应用搜索。 – SmartSolution 2012-01-31 11:27:21

+0

所以基本上用户首先搜索A并获得行R1,现在仅在那些不在所有表上的R1行上搜索B. – SmartSolution 2012-01-31 11:29:15

+0

你或许可以做到这一点使用过程 – 2012-01-31 11:31:22