Mysql
根據使用者選擇建構 where 子句
我和我的團隊正在開發一個多代理系統 (MAS),該系統應該使用語義搜尋和本體對代理數據庫的特定欄位進行統計(使用者選擇要考慮的欄位)。
例如,使用者可能想知道儲存在數據庫中的男性、20 歲以上、居住在紐約市、血型:A 並且單身的人數。
所以我想知道是否有一種方法可以在 MySQL(MySQL 5.7.10.0)中編寫查詢,返回數據庫中匹配元組的數量(匹配使用者的選擇和條件),或者 JAVA 中的 jsc.jar(java統計類)或任何其他 JAVA jar 都可以執行所需的操作。我知道我應該在查詢中使用“count(*)”,但我不確定如何在執行時建構查詢的“where”部分(依賴於使用者對欄位的選擇)。
我正在尋找一種根據使用者在執行時選擇的內容來建構查詢的方式(具體來說是“位置”部分)。可能嗎?
非動態動態
where
子句:create table foo ( gender char(1), age smallint, blood_type varchar(50) ); insert into foo values ('m', 40, 'o+'), ('m', 20, 'b-'), ('f', 30, 'b+'); set @gender = 'm'; set @age = 40; set @blood_type = null; select * from foo where (@gender is null or gender = @gender) and (@age is null or age = @age) and (@blood_type is null or blood_type = @blood_type)
- 使用 PHP 或 Java 或 VB 建構 UI。它將有選擇並導致…
- 另一個頁面動態構造
WHERE
子句加上查詢的其餘部分,執行查詢並顯示結果。這很簡單直接,但它確實需要一些應用程序語言的程式知識。(SQL 不是這樣做的地方。)