Cotejamientos, acentos y ees

Hola Tengo una tabla en MySQL, con cotejamiento utf8_spanish_ci (tabla y campo nombre)

y un mtodo de bsqueda as:

[code] sql = “SELECT * FROM pacientes where nombre like ? order by nombre;”

ps = me.Prepare(sql)
ps.BindType(0, MySQLPreparedStatement.MYSQL_TYPE_STRING)
ps.Bind(0, tx+"%")

rs =  ps.SQLSelect

[/code]

Tengo un paciente con apellido “PIAR”,

Si busco %pi me lo encuentra junto a todos que contenga “pi” en el nombre.

Pero si busco %pi no encuentra nada. Con los acentos es igual.
En la base de datos se ve correctamente.

Ese campo estaba antes como latin_spanish… y se ha cambiado a utf…

Desde sql con phpmyadmin la consulta se realiza bien, pero desde xojo no.

Me respondo a mi mismo por si le sirve a alguien:

Eh agregado en la conexin:

  me.db.SQLExecute("set names utf8 collate utf8_spanish_ci")
  me.db.SQLExecute("set character set utf8")

Y se ha solucionado el problema.

Hola Cecilio,

¿Por qué utf8_spanish_ci en vez de utf8_general_ci? En cualquier caso, prueba Justo después de conectar con la base de datos a ejecutar:

mibbdd.SQLExecute("set names utf8 collate utf8_spanish_ci") mibbdd.SQLExecute("set character set utf8")

Si sigue sin funcionar, ¿obtienes el mismo problema cuando haces la consulta sin utilizar los PreparedStatements?

Saludos,

Javier

Nos hemos solapado. jeje

Uso utf8_spanish_ci porque una vez le que era ms preciso para nuestro alfabeto, y ya que est…

Gracias Javier.