【问题标题】:SQL concat with columns nameSQL concat 与列名
【发布时间】:2014-09-03 13:57:25
【问题描述】:

我想做一个这样的 SQL 请求:

SELECT p.ID, p.post_title
FROM ".$wpdb->prefix."posts AS p
INNER JOIN ".$wpdb->prefix."postmeta pm
ON pm.post_id=p.ID AND pm.meta_key='shops_list'
INNER JOIN ".$wpdb->prefix."follow AS f
ON pm.meta_value LIKE CONCAT('%',f.shop_followed_id,'%')

shop_followed_id 是列名,它不起作用,但是当我用CONCAT('%',163,'%') 测试时,它起作用了。

你知道语法错误在哪里吗?

元值示例:a:3:{i:0;s:3:"168";i:1;s:2:"22";i:2;s:2:"43";} shop_followed_id 示例:168

【问题讨论】:

  • 它不起作用你能用你帖子中的原始错误消息替换它吗

标签: mysql sql concat


【解决方案1】:

在我看来,你倒退了。试试:

INNER JOIN ".$wpdb->prefix."follow AS f
ON f.shop_followed_id LIKE CONCAT('%',pm.meta_value,'%')

【讨论】:

  • 谢谢,但我正在搜索的确实是 pm.meta_value LIKE CONCAT('%',f.shop_followed_id,'%')。 meta_value 示例:a:3:{i:0;s:3:"168";i:1;s:2:"22";i:2;s:2:"43";} shop_followed_id 示例: 168
  • 问题是条件。您是否尝试过这样的事情:inner join table as f on Locate(f.shop_followed_id, pm.meta_value) > 0 ?
【解决方案2】:

对 f.shop_followed_id 使用 Casting。

CONCAT('%',CAST(f.shop_followed_id As VARCHAR),'%')

可能是这个作品

【讨论】:

    【解决方案3】:
    SELECT p.ID, p.post_title AS title, p.post_type AS post_type, p.post_date AS post_date, f.id_shop_followed, pm.meta_value
                FROM ".$wpdb->prefix."posts AS p
                INNER JOIN ".$wpdb->prefix."postmeta pm
                ON pm.post_id=p.ID AND pm.meta_key='shops_list'
                INNER JOIN ".$wpdb->prefix."follow AS f
                ON f.id_user_following = $id_user AND LOCATE(f.id_shop_followed, pm.meta_value)>0  AND f.id_shop_followed > 0
                WHERE ( p.post_type='news' OR p.post_type='promotions' OR p.post_type='product')
                    AND p.post_status='publish' AND f.id_user_following = $id_user
                GROUP BY p.ID
    

    非常感谢 Tuncay Göncüoğlu @Brahmanand Choudhary:我没有尝试您的解决方案,但它可能有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多