sql >> Databáze >  >> RDS >> PostgreSQL

Implementujte vyhledávací filtr pro všechny sloupce

Budete muset přidat svůj 'nulový strážce' do fulltextového vyhledávání a použít to_tsquery místo plainto_tsquery (aby fungovalo vyhledávání prefixů).

SqlStatement = "SELECT * FROM ACCOUNT "
    + " WHERE (trim(?) = '') IS NOT FALSE"
    + " OR to_tsvector('english', USER_NAME || ' ' || FIRST_NAME || ' ' || LAST_NAME ) @@  to_tsquery(?)"
    + " ORDER BY user_name ASC offset ? limit ? ";

a přidejte searchString do vašeho PreparedStatement podruhé

 ps = conn.prepareStatement(sql);

 ps.setString(1, searchString);
 ps.setString(2, searchString);
 ps.setInt(3, firstRow);
 ps.setInt(4, rowCount);

Poznámka pomocí fulltextového vyhledávání nebudete moci vyhledávat části slov (jako %user% , %name nebo us%name ). Můžete však hledat předpony, např. user:*




  1. Vývojový WordPress admin odkaz přesměrování na živé stránky

  2. Jak předponovat názvy sekvencí?

  3. Vraťte název místního serveru v SQL Server s @@ SERVERNAME

  4. jak změnit postgresql naslouchací port v systému Windows?