我對資料庫和查詢的世界完全陌生。
我有以下資料庫

為此,我想構建一個“智能”搜索查詢,以便能夠根據在isbn、name和author列中查找某些內容的查詢來獲取相關條目。問題是輸入查詢不一定是關鍵字,它可以是關鍵字的一部分。我希望能夠輸入 isbn 編號的一部分、書名的一部分、作者姓名的一部分并回傳相關結果。
假設我查詢“97182”,我想要所有以該序列開頭的書。
或者,如果我查詢“ma”,我想要所有名稱或作者以“ma”開頭的條目。
例如,我最近了解到可以使用 Postgresql 執行以下操作(我相信名稱是“全文搜索”):
SELECT *
FROM books
WHERE to_tsvector(isbn || ' ' || name || ' ' || author) @@ to_tsquery('proust')
輸出將是在搜索的列之一中具有“proust”的行。

由于其作業方式的性質(向量化列,減少到詞素等),相同的 postgresql 查詢不適用于我提到的內容。不過,我還沒有完全理解全文搜索。
是否可以根據我的描述創建“更智能”的查詢?
uj5u.com熱心網友回復:
使用LIKE:
WHERE LOWER(isbn || ' ' || name || ' ' || author) LIKE '%proust%'
與您使用的專有函式不同,此代碼將在所有 RDBMS 上運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395788.html
標籤:sql PostgreSQL的
