PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Terapkan filter pencarian untuk semua kolom

Anda harus menambahkan 'null guard' Anda ke pencarian teks lengkap dan menggunakan to_tsquery bukannya plainto_tsquery (agar pencarian awalan berfungsi).

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

dan tambahkan searchString ke PreparedStatement . Anda untuk kedua kalinya

 ps = conn.prepareStatement(sql);

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

Catatan menggunakan pencarian teks lengkap Anda tidak akan dapat mencari bagian kata (seperti %user% , %name atau us%name ). Anda dapat mencari awalan, mis. 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. PostgreSQL tsrange:apakah benar lower_inf('(-infinity,today)'::tsrange) salah?

  2. http://localhost/phppgadmin/ -> 403 Dilarang

  3. Kelompokkan menurut kolom yang ditentukan di PostgreSQL

  4. Penyelaman Cloud Vendor:PostgreSQL di Microsoft Azure

  5. Cara menginstal PyGreSQL menggunakan Virtualenv di Mac OS Sierra