【问题标题】:mysql order based on concat list基于concat列表的mysql顺序
【发布时间】:2013-10-17 21:03:19
【问题描述】:

我有 2 张桌子:

  • 产品
  • 属性

products.product_attributes 包含与该产品相关的所有属性标识符的连续列表。但我的问题在于排序,concat 列表包含手动指定的顺序中的所有标识符,但这对结果的顺序没有影响。

如何使用连续列表来识别订单?

查询示例:

SELECT * FROM attributes WHERE attribute_id IN(products.product_attributes)

【问题讨论】:

  • 加盟如何解决我的订购问题?这个“离题”又是如何获得反对票的?

标签: php mysql


【解决方案1】:

感谢@Raymond Nijland,不那么老套的解决方案:

   SELECT DISTINCT attributes.* FROM attributes, products 
    WHERE EXISTS(SELECT 1 FROM products WHERE 
    FIND_IN_SET(attribute_id, product_attributes) IS NOT NULL);

【讨论】:

  • 为什么不是最好的设计?我不想创建一个额外的表,所以认为这是能够轻松使用 IN() 的唯一方法。我只想存储 1-many 的关系数据?
  • 您不能将 IN 与字符串字段一起使用。
  • 谢谢大家,这是完美的工作,我不知道的 mysql 功能太多,需要阅读稀有的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2015-12-08
  • 1970-01-01
相关资源
最近更新 更多