代码之家  ›  专栏  ›  技术社区  ›  Mihai Iorga

在集合问题中查找

  •  0
  • Mihai Iorga  · 技术社区  · 14 年前

    我有这个mysql查询:

    SELECT * FROM `tbl_prods`
    WHERE `id` IN ('58', '169', '166', '496', '24', '28')  
    ORDER BY FIND_IN_SET(`id`, '58, 169, 166, 496, 24, 28')
    

    结果很奇怪:

    24
    28
    166
    169
    496
    58
    

    我不知道怎么把我点的东西还回来 FIND_IN_SET

    你知道我哪里做错了吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Mark Byers    14 年前

    使用 FIELD 而不是 FIND_IN_SET :

    SELECT * FROM `tbl_prods`
    WHERE `id` IN ('58', '169', '166', '496', '24', '28')  
    ORDER BY FIELD(`id`, '58', '169', '166', '496', '24', '28')
    
        2
  •  2
  •   codaddict    14 年前

    你不应该有空格

    '58, 169, 166, 496, 24, 28'
    

    将其更改为

    '58,169,166,496,24,28'