【发布时间】:2010-03-18 19:01:34
【问题描述】:
我在比较 VARCHAR 字段中的值时遇到了一些问题。
我有一个产品表,每个产品都有体积。我将卷存储在 VARCHAR 字段中,它通常是一个数字(30、40、200..),但有些产品具有多个卷,并且它们的数据以分号分隔,例如 30;60;80。
我知道不建议这样存储多个卷,但我必须像这样使用它。
我正在尝试为产品实现按量搜索功能。我还想显示体积大于或等于搜索量的产品。 这不是单卷产品的问题,而是多卷产品的问题。
也许举个例子会让事情更清楚:假设我有一个产品,它的体积字段是:30;40;70;80。 如果有人搜索一卷,比如说 50,我希望显示该产品。
为此,我正在考虑编写自己的自定义 MySQL 函数(我以前从未这样做过),但也许有人可以提供不同的解决方案。
我为我糟糕的英语道歉,但我希望我把我的问题说清楚了。
谢谢。
【问题讨论】:
-
如果表非常大,这个查询的性能将会很糟糕,因为您将无法利用该字段上的任何索引。
-
卷是否总是按从左到右的递增顺序存储?
-
JohnFx,我们将使用缓存,希望能提高性能。马克·拜尔斯,我不确定是否诚实,我明天必须与某人核实一下。
标签: mysql comparison multiple-value