选择未知字段

时间:2015-03-06 18:58:47

标签: mysql wordpress

我必须从wordpress数据库中选择一个mysql:

SELECT wp_posts.ID, wp_posts.post_title AS post_title,
        responsable.meta_value AS responsable,
        nif_cliente.meta_value AS nif_cliente,
        CONCAT_WS(' ',contactos_0_nombre.meta_value,CONCAT('<br><br>',contactos_1_nombre.meta_value)) AS contactos,
        tipo_de_empresa.meta_value AS tipo_de_empresa,
        tipo_cliente.meta_value AS tipo_cliente

        FROM wp_posts

        LEFT JOIN wp_postmeta AS responsable 
        ON wp_posts.ID = responsable.post_id AND responsable.meta_key='responsable'

        LEFT JOIN wp_postmeta AS tipo_de_empresa
        ON wp_posts.ID = tipo_de_empresa.post_id AND tipo_de_empresa.meta_key='tipo_de_empresa'

        LEFT JOIN wp_postmeta AS nif_cliente
        ON wp_posts.ID = nif_cliente.post_id AND nif_cliente.meta_key='nif_cliente'

        LEFT JOIN wp_postmeta AS contactos_0_nombre
        ON wp_posts.ID = contactos_0_nombre.post_id AND contactos_0_nombre.meta_key='contactos_0_nombre'

        LEFT JOIN wp_postmeta AS contactos_1_nombre
        ON wp_posts.ID = contactos_1_nombre.post_id AND contactos_1_nombre.meta_key='contactos_1_nombre'

        LEFT JOIN wp_postmeta AS tipo_cliente
        ON wp_posts.ID = tipo_cliente.post_id AND tipo_cliente.meta_key='tipo_cliente'

        WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'clientes'"

我想联系contactos_n_nombre。我可以手动编写但是'n'它是dinamic(我不知道它是多少)如果只有一个联系人它可以是0,但如果这个客户端有更多的联系方法可以是1000。

如何搜索有多少联系人拥有一个客户端,并将所有客户端连接起来

由于

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以使用MySQL GROUP_CONCAT函数。您可能需要针对您的情况进行调整,但基本思路是:

将数据库JOIN设置为:

LEFT JOIN wp_postmeta AS contactosdb ON wp_posts.ID = contactosdb.post_id

然后在SELECT中使用以下内容:

GROUP_CONCAT(contactosdb.meta_value SEPARATOR '<br><br>') AS contactos