gpt4 book ai didi

java - 如何使用通配符从多个表中搜索值?

转载 作者:可可西里 更新时间:2023-11-01 06:50:06 24 4
gpt4 key购买 nike

我正在使用 JDBC 进行通配符搜索。

当我使用单个表时,代码运行良好。

当我尝试使用通配符搜索组合多个表时,代码不起作用。

例如,用户可以搜索任何关键字。

  1. 如果用户搜索“cricket”,则 cricket 关键字在运动表中可用
  2. 如果用户搜索“windows 8”,它在软件表中可用
  3. 如果用户搜索“google, yahoo”,该关键字在网站表中可用

这是动态输入值:

where s1(cricket,windows 8,google)

在单表搜索中,我在运动表中查找“cricket”。

这是我的查询,效果很好:

"select * from sports WHERE feed LIKE '%" +s1 + "%'";

我的多表查询不起作用。

    "select * from  product  WHERE sitename LIKE '%"+s1+"%'" "OR 

"select * from sports WHERE sitename LIKE '%"+s1+"%'" " OR

"select * from website WHERE sitename LIKE '%"+s1+"%'" " OR

"select * from software WHERE sitename LIKE '%"+s1+"%'" "OR

"select * from other WHERE sitename LIKE '%"+s1+"%'"

这段代码有什么问题?

最佳答案

尝试使用 UNION 而不是 OR 来连接您的单个语句。有了它,您可以连接多个 SQL 查询和具有相同列的表。例如:

"select * from  product  WHERE sitename LIKE '%"+s1+"%' UNION 

select * from sports WHERE sitename LIKE '%"+s1+"%' UNION

select * from website WHERE sitename LIKE '%"+s1+"%' UNION

select * from software WHERE sitename LIKE '%"+s1+"%' UNION

select * from other WHERE sitename LIKE '%"+s1+"%'" ;

但是请注意!您的单个表必须具有相同的列/列数,否则将无法工作!
也许更好的例子来澄清:

"select sitename, description from  product  WHERE sitename LIKE '%"+s1+"%' UNION 

select sitename, description from sports WHERE sitename LIKE '%"+s1+"%' UNION

select sitename, description from website WHERE sitename LIKE '%"+s1+"%' UNION

select sitename, description from software WHERE sitename LIKE '%"+s1+"%' UNION

select sitename, text as description from other WHERE sitename LIKE '%"+s1+"%'" ;

正如您在语句 6 中看到的,您可以通过重命名其他列来引用您的结果,但列数必须相同。

希望对您有所帮助!

关于java - 如何使用通配符从多个表中搜索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com