PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zaimplementuj filtr wyszukiwania dla wszystkich kolumn

Będziesz musiał dodać swoją „ochronę zerową” do wyszukiwania pełnotekstowego i użyć to_tsquery zamiast plainto_tsquery (aby wyszukiwanie prefiksu działało).

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 ? ";

i dodaj searchString do Twojego PreparedStatement drugi raz

 ps = conn.prepareStatement(sql);

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

Uwaga używając wyszukiwania pełnotekstowego nie będziesz w stanie wyszukać części słów (takich jak %user% , %name lub us%name ). Możesz jednak wyszukiwać przedrostki, np. user:*




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wykorzystanie szyfrowania do wzmocnienia bezpieczeństwa bazy danych PostgreSQL

  2. Dostęp do Postgres RDS z klastra Kubernetes w AWS

  3. Włączenie niestandardowej klauzuli SELECT w zapytaniu ActiveRecord

  4. PostgreSQL unnest() z numerem elementu

  5. Błąd podczas ładowania bibliotek współdzielonych:libpq.so.5:nie można otworzyć pliku współdzielonego obiektu:Brak takiego pliku lub katalogu