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

Sql 如何构建查询以基于另一个字段划分字段?,sql,mysql,Sql,Mysql,我想买几箱每瓶4到8美元的葡萄酒。产品表中的成本均为12。轻松,嗯 SELECT `id` FROM `products` WHERE (`cost` / 12) > 4 AND (`cost` / 12) < 8 选择'id` 来自`产品` 其中(`cost`/12)>4 和(`cost`/12)

我想买几箱每瓶4到8美元的葡萄酒。产品表中的成本均为12。轻松,嗯

SELECT `id` 
  FROM `products`
 WHERE (`cost` / 12) > 4
   AND (`cost` / 12) < 8
选择'id`
来自`产品`
其中(`cost`/12)>4
和(`cost`/12)<8
现在,他们开始销售6箱。假设这仅在标题字符串中定义为
6 pack

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

这在一个查询中可能吗


谢谢

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

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

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

SELECT 
 `id`,
 SomeRegexFunctionOrStringFunction(description) quantity 
FROM `products`
 WHERE (`cost` / quantity) > 4
   AND (`cost` / quantity) < 8
选择
`id`,
SomeRegexFunctionOrStringFunction(描述)数量
来自`产品`
其中(`cost`/数量)>4
和(`cost`/数量)<8

享受吧

谢谢你的回答。我意识到了这一点,但我是在开源电子商务软件包的基础上构建的,并且正在寻找一种简单的方法来实现它。不过,如果表现不佳,我可能不得不这么做。