我想得到葡萄酒的情况,每瓶的价格在4美元到8美元之间。产品表中的成本都是12的情况。简单吧?
SELECT `id`
FROM `products`
WHERE (`cost` / 12) > 4
AND (`cost` / 12) < 8
现在,他们开始销售6个案例。假设这只是在6 pack
的标题字符串中定义。
如何编写我的查询,以便选择所有葡萄酒的情况,其中price / 12在范围内,或者如果标题字符串包含6 pack
,则除以6。
这可以在一个查询中使用吗?
由于
答案 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
享受!