Soporte » WordPress Avanzado » SQL para valores únicos desde usermeta.meta_value o usar tabla personalizada

  • Rodrigo

    (@calvinyhobbes)


    (Vuelvo a subir el tema, actualizado, porque el anterior NO aparece)

    Hola a tod@s: La consulta que coloco tiene relación a 100% con SQL Query, y la mejor forma de usar las tablas «meta» para obtener resultados. (Imagino que es un problema bastante común y anterior, ya que WP, resuelve con la combinación meta_key/meta_value, el agregar valores personalizados)

    Sea la tabla USERMETA, con los siguientes 2 registros:

    umeta_id | user_id | meta_key | meta_value
    1 | 1 | users | user2; user3; user4 (tiene 3 campos repetidos)
    2 | 2 | users | user1;user4 (tiene 2 campos repetidos)

    *Obviamente, el campo meta_value, almacena valores tipo array, que pueden tener «n» valores únicos y a nivel de tabla contendrá algo como s:6:»item-0″;a:1:{s:6:»nom_campo»;s:22:»user2″;}

    ¿De que forma se puede obtener, sólo a través de SQL Query (usando por ejemplo phpMyAdmin), la siguiente salida?

    user_id | usuarios
    1 | user2
    1 | user3
    1 | user4
    2 | user1
    2 | user4

    En otras palabras, se requiere identificar los valores que tiene el campo meta_value, para el campo user_id, generando un registro por cada uno de ellos

    Entonces:

    1) Me ayudan bastante si me refieren donde puedo buscar en la documentación de WP, o si pueden compartir el pseudo código, lo sabré entender. En el fondo requiero entender como abordar de forma eficiente, los «meta values», cuando tienen valores distintos sacándolos, con una consulta SQL en Mysql. (NO por PHP)
    ó
    2) Simplemente, por rendimiento, o por lo que sea, sería mucho mejor ocupar una tabla personalizada, con el valor agregado, que los JOIN salen directos, ocupando las condiciones básicas que nos provee cualquier motor de BD.

    Gracias por cualquier adelanto

    PD. no me sirve subir este debate en un grupo de MYSQL-puro, ya que lo importante, es tener la mirada de un desarrollador WP.

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.