【问题标题】:java mysql nested search implementationjava mysql嵌套搜索实现
【发布时间】:2012-02-23 02:45:15
【问题描述】:

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

谁能告诉我如何实现这个? DB(mysql)本身是否为此提供了任何功能?

正如我提到的,用户对从第一个搜索结果收到的记录应用第二次搜索,这不像用户同时给出两个输入,第二次搜索是不可预测的,它可以是任何列上的任何搜索。

提前致谢。

【问题讨论】:

    标签: java mysql search nested


    【解决方案1】:
    SELECT ... FROM some_table WHERE firstname like '%abc%' AND lastname like '%xyz%'
    

    【讨论】:

    • 感谢您的快速回复,但它不是我正在寻找的答案,正如我提到的用户对从第一个搜索结果收到的记录应用第二次搜索,它不像用户同时提供输入和第二次搜索是不可预测的,它可以是任何列上的任何搜索。
    【解决方案2】:

    使用下面的代码

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

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

    由于我现在没有 mysql,我无法检查哪个可以工作...但我认为使用括号可以工作...

    祝你好运!!!

    【讨论】:

    • Parker:感谢您的快速回复,但它不是我正在寻找的答案,正如我提到的用户对从第一个搜索结果收到的记录应用第二次搜索,这不像用户同时提供两个输入并且第二次搜索是不可预测的,它可以是任何列上的任何搜索。
    • 然后你可以在java代码中比较姓氏是否包含xyz......通过使用myString.indexof("xyz")>=1
    • 你能用例子解释你的场景吗?你是怎么做到的?我不认为你在做什么是正确的......
    • 所以基本上用户首先搜索 A 并得到 R1 行,现在只在 R1 行上搜索 B,而不是在该表的所有行上。
    • 你打算做一个 ONE 页面吗??
    【解决方案3】:

    如果你还想去subQuerwy,可以直接申请AND

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

    但为了简单起见,您应该选择AND

    【讨论】:

    • 谢谢哥们,请再读一遍问题,我想应用嵌套搜索意味着想对以前的搜索结果应用搜索。
    • 所以基本上用户首先搜索 A 并获得 R1 行,现在仅在那些 R1 行而不是所有表上搜索 B。
    • 你可以使用程序来做到这一点
    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 2015-01-21
    • 2015-02-20
    • 2015-04-11
    • 2016-10-09
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多