Full-Text-Search

搜尋表中的所有列

  • August 12, 2019

正如標題所說,我想創建一個查詢,在該表的所有列中搜尋關鍵字。

所以我想簡化這個查詢:

SELECT * FROM tblCustomers
   WHERE (col1 LIKE '%keyword%' OR col2 LIKE '%keyword%' OR col3 LIKE '%keyword%' OR col4 LIKE '%keyword%') 
   AND (col1 LIKE '%keyword2%' OR col2 LIKE '%keyword2%' OR col3 LIKE '%keyword2%' OR col4 LIKE '%keyword2%');

類似於:

SELECT * FROM tblCustomers
   WHERE (allColumns LIKE '%keyword%') 
   AND (allColumns LIKE '%keyword2%');

全文搜尋

您可以使用FTS5

CREATE VIRTUAL TABLE customer USING tblCustomers(col1, col2, col3);

那你就

SELECT * FROM tblCustomers WHERE email MATCH 'keyword AND keyword2';

好的,所以如果PRAGMA不是一個選項:

SELECT sql FROM sqlite_master
WHERE tbl_name = 'tblCustomers' 
 AND type = 'table'
 AND (sql LIKE '%keyword%' OR sql LIKE'%keyword2%')

使用AND這兩種關鍵字可能性似乎都行不通,因為兩者都不是真的。

引用自:https://dba.stackexchange.com/questions/116471