【问题标题】:Select with unknow fields选择未知字段
【发布时间】:2015-03-06 18:58:47
【问题描述】:

我必须从 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。我可以手动编写它,但它是动态的(我不知道它是多少)如果只有一个联系人,它可以是 0,但如果这个客户有更多的联系方式,它可以是 1000。

我怎样才能搜索有多少联系人有一个客户,并将他们全部连接起来

谢谢

【问题讨论】:

标签: mysql wordpress


【解决方案1】:

如果我正确理解您的问题,您可以使用 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

【讨论】:

  • 谢谢@bobdye 我认为 GROUP_CAT 加入了同名字段。但是我有不同名称的字段:contactos_0.meta_value,contactos_1.meta_value,contactos_2.meta_value.....contactos_N.meta_value,N 它是动态的,我不知道这个数字。我需要加入所有的contactos_N.metavalue。再次感谢
猜你喜欢
  • 2023-02-01
  • 2016-07-30
  • 2017-12-24
  • 2021-08-02
  • 1970-01-01
  • 2015-12-10
  • 2021-05-20
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多