gpt4 book ai didi

java - 如何将 SQL 结果集输出限制为 1 个结果而不是每个查询结果?

转载 作者:行者123 更新时间:2023-11-29 16:16:01 25 4
gpt4 key购买 nike

我正在开发一个网络应用程序,其中包含一个搜索功能,当用户提交与该餐厅匹配的查询时,该功能会返回该餐厅。

例如,如果用户输入“披萨”并输入“威士忌”,我希望结果输出匹配的餐厅一次。

相反,这个精确的查询会导致餐厅名称出现多次。

表格:

Foodtbl Drinkstbl Restaurantstbl

SQL 代码:

" SELECT r.restname, r.type, r.location, r.website, r.reviews, r.PageLink"
+ " FROM restaurants r, food f, drinks d"
+ " WHERE SOUNDEX(f.foodcategory) = SOUNDEX(?)"
+ " AND SOUNDEX(d.drinkvariety) = SOUNDEX(?)"
+ " AND r.restid = f.restid"
+ " AND r.restid = d.restid");

While循环结果:

<% while (restResults.next()) { %>
<td><%= restResults.getString("restname") %></td>
<td><%= restResults.getString("type") %></td>
<td><%= restResults.getString("location") %></td>
<td><a href="<%= restResults.getString("website") %>"</a>Go to Website</td>
<td><a href="<%= restResults.getString("reviews") %>"</a>Go to Reviews</td>
<td><a href ="<%= restResults.getString("PageLink") %>"</a>More Info</td>

这是我的 SQL 语句的问题还是循环问题?

谢谢。

最佳答案

由于您仅从餐厅中选择字段,并且不使用聚合函数,因此您可以添加 DISTINCT
这样返回的记录将是唯一的。

此外,最好使用更新的 JOIN 语法,而不是过时的逗号语法。

" SELECT DISTINCT r.restname, r.type, r.location, r.website, r.reviews, r.PageLink"
+ " FROM restaurants r"
+ " JOIN food f ON f.restid = r.restid"
+ " JOIN drinks d ON d.restid = r.restid"
+ " WHERE SOUNDEX(f.foodcategory) = SOUNDEX(?)"
+ " AND SOUNDEX(d.drinkvariety) = SOUNDEX(?)");

关于java - 如何将 SQL 结果集输出限制为 1 个结果而不是每个查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54786249/

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