PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Внедрете филтър за търсене за всички колони

Ще трябва да добавите своя „null guard“ към търсенето в пълен текст и да използвате to_tsquery вместо plainto_tsquery (за да работи префиксното търсене).

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

и добавете searchString към вашия PreparedStatement втори път

 ps = conn.prepareStatement(sql);

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

Забележка като използвате търсене в пълен текст, няма да можете да търсите части от думи (като %user% , %name или us%name ). Можете обаче да търсите префикси, напр. 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. Как да използвам Java компонента Embedded PostgreSQL Server като отделна услуга?

  2. Как да добавя ограничения за каскада за изтриване?

  3. Как да съхранявате рамка от данни на pandas с обекти с данни тип datetime.timedelta в d/b на postgresql с помощта на sqlalchemy?

  4. Как мога да използвам курсори от страната на сървъра с django и psycopg2?

  5. Как да върна множество редове от PL/pgSQL функция?