簡體   English   中英

多搜索SQL查詢

[英]Multi search sql query

這是一個概念性的問題。 我正在使用hsqldb我想使用多個不同的下拉菜單創建多重搜索。 我的想法是全選並篩選查詢所需要的屬性。 但是,這不符合我的意願:

例如。:

Select distinct person, city, gender from test where person = 'John' and gender = * and city = *;

例如。:

我的表格test有3列: Person, City, Gender

+--------+--------+--------+
| Person |  City  | Gender |
+--------+--------+--------+
| John   | Berlin | male   |
| John   | London | male   |
| Fred   | Berlin | male   |
| Sarah  | Vienna | fem    |
| John   | London | male   |
| Fred   | Vienna | fem    |
+--------+--------+--------+

現在,如果我選擇“ Person John”,我將具有:

+--------+--------+--------+
| Person |  City  | Gender |
+--------+--------+--------+
| John   | Berlin | male   |
|        |        |        |
|        |        |        |
+--------+--------+--------+

另一個示例,如果我在下拉菜單中選擇“維也納”,則會得到:

+-------------------------+
| Person   City   Gender  |
+-------------------------+
| Sarah   Vienna  fem     |
| Fred                    |
+-------------------------+

我真的很想在sql查詢中實現它,因為我認為那是最優雅的解決方案。 有什么建議怎么做? 這樣的查詢看起來如何?

感謝您的回答!

更新

好主意。

我想這樣實現:

因此,當我選擇John時,我會返回:

+--------+--------+--------+
| Person |  City  | Gender |
+--------+--------+--------+
| John   | Berlin | male   |
| John   | London | male   |
| John   | London | male   |
+--------+--------+--------+

該查詢看起來像我猜:

SELECT person, city, gender FROM test where person = 'John' and city = * and gender = *

gender = *出現錯誤。 填寫性別和城市的最佳方法是什么?

感謝您的回答!

您准備的sql語句應包含以下語言:

...where person like ':person' and city like ':city' and gender like ':gender';

如果您想用姓名作為某人,請傳遞您要查找的姓​​名以及城市和性別的“%”。 無論您要忽略哪個字段,都只需使用'%'作為字符串參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM