Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

488
Vistas
Nodo JS Sequelize DONDE El operador LIKE en la consulta sin procesar arroja un error

Estoy construyendo una aplicación Node JS. Estoy usando Sequelize para las operaciones de la base de datos. Ahora, tengo un problema con el uso del operador LIKE con consultas sin formato.

Tengo la consulta de la siguiente manera.

 let offset = (page > 1)? (page - 1) * recordPerPage: 0; let where = { } let sql = 'SELECT "Users"."id", "Users"."name", "Users"."email"'; sql = sql + ' FROM "Users"'; sql = sql + ' WHERE "Users"."id" != :myUserId'; where.myUserId = myUserId; if (keyword) { where.keyword = keyword; sql = sql + ' AND ("Users"."email" LIKE "%:keyword%" OR "Users"."name" LIKE "%:keyword%")' } if (parseInt(roleType) > 0) { // get the role is because role is the type let role = await Role.findOne({ where: { type: { [Op.eq]: roleType } } }) where.role = role.id; sql = sql + ' AND "Users"."id" IN (SELECT "UserRoles"."user_id" FROM "UserRoles" WHERE "UserRoles"."role_id" =:role)'; } sql = sql + ' ORDER BY "Users"."name" ASC, "Users"."id" ASC'; where.offset = offset; where.limit = recordPerPage; sql = sql + ' LIMIT :limit OFFSET :offset'; let users = await database.sequelize.query(sql, { replacements: where, type: QueryTypes.SELECT })

Cuando paso la palabra clave que se usa con el operador LIKE, aparece el siguiente error.

 `column "%'TEST'%" does not exist`

¿Qué está mal con mi código y cómo puedo solucionarlo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Por favor, eche un vistazo al último ejemplo aquí :
no hay " para el marcador de posición en el sql, pero también, la keyword debe incluir el % dentro , como parte de su contenido.

Aquí está el ejemplo de los documentos:

 const { QueryTypes } = require('sequelize'); await sequelize.query( 'SELECT * FROM users WHERE name LIKE :search_name', { replacements: { search_name: 'ben%' }, type: QueryTypes.SELECT } );
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda