[SQL] Consulta sobre outra consulta

  • Autor Autor Ruiz86
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Ruiz86

Ruiz86

Eta
SEO
Verificación en dos pasos activada
He intentado realizar esta consulta:
Inserir CODE, HTML ou PHP:
SELECT * FROM videos WHERE EXITS (SELECT id, nombre count( nombre) AS count FROM videos GROUP BY nombre HAVING count >1)

Pero me da este error:
Inserir CODE, HTML ou PHP:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id, nombre count( nombre) AS count FROM videos GROUP BY nombre HAVING cou' at line 1

El caso es que quiero sacar todos los registros que tienen valores duplicados en el nombre y borrarlos, se que empieza con un select (lo hago para que me loes muestre primero), pero luego cambiaria elprimer select por delete. Aunque me da error. ¿Que hago mal?
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
mmm,
a simple vista debe ir EXISTS, en el segundo select te falta una coma(,)
Es mas sintaxis que la consulta en si.
Prueba por ahi.
Suerte.
 
mmm,
a simple vista debe ir EXISTS, en el segundo select te falta una coma(,)
Es mas sintaxis que la consulta en si.
Prueba por ahi.
Suerte.

En el segundo select ya he agregado la coma faltante y ahora me muestra 30.000 filas que son las que quiero eliminar, ¿ahora como hago para eliminarlas agregandole un DELETE antes?
 
En el segundo select ya he agregado la coma faltante y ahora me muestra 30.000 filas que son las que quiero eliminar, ¿ahora como hago para eliminarlas agregandole un DELETE antes?

Si haz verificado lo que te devuelve, pues si, creo q con un delete basta.
Siempre verifica los valores devueltos.:encouragement:
 
Si, están verificados, pero ¿cómo hago ese delete? Me sigue dando error
 
Si, están verificados, pero ¿cómo hago ese delete? Me sigue dando error

No se funcionaria, pero podrías intentar poner toda esta consulta dentro de otra de DELETE. como has hecho con SELECT.
 
Inserir CODE, HTML ou PHP:
DELETE FROM videos WHERE id IN (SELECT id count( nombre) AS count FROM videos  GROUP BY nombre HAVING count >1)

Inserir CODE, HTML ou PHP:
DELETE FROM videos WHERE id = (SELECT id count( nombre) AS count FROM videos  GROUP BY nombre HAVING count >1)

Inserir CODE, HTML ou PHP:
DELETE FROM videos WHERE id EXITS (SELECT id count( nombre) AS count FROM videos  GROUP BY nombre HAVING count >1)

Todas me dan error y es porque estoy escribiendo la primera sentencia mal (el select de la subconsulta funciona bien por separado), ¿Alguien puede ayudarme?
 
los valores duplicados con el mismo nombre también tienen el mismo id?
 
los valores duplicados con el mismo nombre también tienen el mismo id?

No, tienen id diferente. Solo tienen duplicados los nombres.

- - - Actualizado - - -

Tema resuelto :encouragement:
 
Voltar
Topo