如何构建一个基于另一个字段划分字段的查询?

时间:2010-07-27 23:47:18

标签: sql mysql

我想得到葡萄酒的情况,每瓶的价格在4美元到8美元之间。产品表中的成本都是12的情况。简单吧?

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

现在,他们开始销售6个案例。假设这只是在6 pack的标题字符串中定义。

如何编写我的查询,以便选择所有葡萄酒的情况,其中price / 12在范围内,或者如果标题字符串包含6 pack,则除以6。

这可以在一个查询中使用吗?

由于

2 个答案:

答案 0 :(得分:2)

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

`cost`/IF(`title` LIKE '%6 pack%', 6, 12)

答案 1 :(得分:0)

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

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

享受!