Antes que nada, gracias por responder.
Mi primera aproximación iba por donde tú comentas. Lo que sucede es que al no saber el número de usuarios que alguien va a bloquear, (hay gente muy insociable por ahí
) se
me ocurrió esta forma, ya que en caso contrario o bien le dejo un número cerrado de posibilidades de bloqueo a los usuarios para asignarlo a unas variables preestablecidas, o bien abro una tabla abierta donde se pueda duplicar tanto la id del que bloquea como la del bloqueado.
Persistiendo en mi idea, estaba comprobando que el NOT LIKE me funciona siempre que no lo encadene con otro where, esto es:
"SELECT nick FROM usuarios
WHERE bloqueados NOT LIKE '%-$id-%'";
me funciona, pero
"SELECT nick FROM usuarios
WHERE conectado = 's'
AND bloqueados NOT LIKE '%-$id-%'";
no. Debo ser el mamífero más tonto del mundo, pero no entiendo por qué.