Estoy usando declaraciones preparadas para ejecutar consultas de bases de datos mysql. Y quiero implementar una funcionalidad de búsqueda basada en una especie de palabra clave.
Para eso necesito usar LIKEpalabras clave, eso lo sé. Y también he usado declaraciones preparadas antes, pero no sé cómo usarlo LIKEporque, desde el siguiente código, ¿dónde agregaría el 'keyword%'?
¿Puedo usarlo directamente en el pstmt.setString(1, notes)as (1, notes+"%")o algo así? Veo muchas publicaciones sobre esto en la web, pero no hay una buena respuesta en ningún lado.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();

... LIKE '%' || ? || '%'o similar, pero eso es mucho menos flexible.WHERE UPPER(?) LIKE UPPER(?)cuando se usapstmt.setString(2, "%" + notes + "%")'%' || ? || '%'como se menciona en el primer comentario fue mejor, después de todo? No tengo la oportunidad de experimentar en este momento.Codifícalo así:
Asegúrese de NO incluir las citas '' como se muestra a continuación, ya que causarán una excepción.
fuente
podemos hacer esto de manera simple, usando la función CONCATE SQL.
Este es un trabajo perfecto para mi caso.
fuente
Probar esto.
fuente
fuente
fuente