sql >> Base de Datos >  >> RDS >> PostgreSQL

Implementar filtro de búsqueda para todas las columnas.

Deberá agregar su 'protección nula' a la búsqueda de texto completo y usar to_tsquery en lugar de plainto_tsquery (para que funcione la búsqueda de prefijos).

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

y agregue el searchString a su PreparedStatement una segunda vez

 ps = conn.prepareStatement(sql);

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

Nota usando una búsqueda de texto completo, no podrá buscar partes de palabras (como %user% , %name o us%name ). Sin embargo, puede buscar prefijos, p. user:*