代码之家  ›  专栏  ›  技术社区  ›  alex

如何建立一个查询来根据另一个字段划分字段?

  •  0
  • alex  · 技术社区  · 15 年前

    我想买几箱每瓶4到8美元的葡萄酒。产品表中的成本均为12例。容易吗?

    SELECT `id` 
      FROM `products`
     WHERE (`cost` / 12) > 4
       AND (`cost` / 12) < 8
    

    现在,他们开始销售6箱。假设只在标题字符串中定义了 6 pack .

    如何编写查询,以便它选择价格/12在范围内的所有葡萄酒案例,或者如果标题字符串包含 6包 ,除以6。

    这在一个查询中是可能的吗?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  2
  •   Ignacio Vazquez-Abrams    15 年前

    是的,但是考虑添加一个“percase”字段。字符串比较不是最快的操作。

    `cost`/IF(`title` LIKE '%6 pack%', 6, 12)
    
        2
  •  0
  •   Doug    15 年前

    根据数据库服务器的不同,您可能可以使用正则表达式或字符串函数来查找特定的模式并提取数量。或者,您可能希望在外部进行其他处理,以便使用Java或.NET或其他脚本语言添加新列。

    SELECT 
     `id`,
     SomeRegexFunctionOrStringFunction(description) quantity 
    FROM `products`
     WHERE (`cost` / quantity) > 4
       AND (`cost` / quantity) < 8
    

    享受!