搜索DB,半尺寸和全尺寸的尺寸

时间:2011-01-05 16:38:47

标签: php mysql

我正在尝试在我的数据库中搜索大小。有些是用于以下格式的服装项目:

小 - 黑色 小 - 红色

小 介质 大 XL

我的查询搜索大小的部分是LIKE '".$size."%' $ size是Small,Medium,Large还是XL。这一切都运作良好。但是我还需要按鞋码搜索。问题是如果我搜索大小10,它将返回大小10和大小10.5的结果。

我以为我可以在查询之前做一个if语句,看看$ size是一个数字,然后对字符串和数字有不同的查询,但我正在寻找一种更简洁的方法来做到这一点。有什么建议?谢谢!

4 个答案:

答案 0 :(得分:1)

尝试以下where子句

size LIKE '".$size."%' AND size NOT LIKE '".$size.".5%'

答案 1 :(得分:0)

enum

替换列

尺寸定义(S,M,L,XL,XXL,XXXL,5,5.5,6,6.5,7 ....)绝对适合 65,535元素

答案 2 :(得分:0)

从它的外观来看,你可以使用“=”而不是像?如果你那么你会得到你的XL,中等或'10'命中,不是吗?为什么不使用='".$size."'

答案 3 :(得分:0)

我认为这里的答案都归结为一件事:你有一个充满随机数据的字段。

真正的答案是想出一种正式化数据输入的方法,这样你就可以统一。有很多方法可以做到这一点,但是您可能希望枚举一个字段,如ajreal所提到的“普通语言”样式大小(以及此列表的CONSTRAIN数据条目),以及数字大小的字段,可能还有控制字段指出哪一个用于记录。这个例子可能不是一个好方法,但你需要统一数据以使搜索有效地工作。

快捷方式可能是通过说“喜欢'foo'或类似'10 .5'”来缩小尺寸,这将返回记录的子集,然后在显示时迭代并消除特殊案例项。这是一个坏主意黑客。