【发布时间】:2011-07-18 02:58:55
【问题描述】:
我正在尝试将摩托车型号列表与一系列 ebay 代码相匹配,以便在 ebay 中列出摩托车。
所以我们得到一个摩托车型号名称,类似于:
制造商是哈雷戴维森的 XL883C Sportster
我有一个类似这样的 ebay 代码列表
MB-100-0 Other
MB-100-1 883
MB-100-2 1000
MB-100-3 1130
MB-100-4 1200
MB-100-5 1340
MB-100-6 1450
MB-100-7 Dyna
MB-100-8 Electra
MB-100-9 FLHR
MB-100-10 FLHT
MB-100-11 FLSTC
MB-100-12 FLSTR
MB-100-13 FXCW
MB-100-14 FXSTB
MB-100-15 Softail
MB-100-16 Sportster
MB-100-17 Touring
MB-100-18 VRSCAW
MB-100-19 VRSCD
MB-100-20 VRSCR
所以我想使用 regExp 模式将模型名称与上面的列表进行匹配。
我已经尝试了以下代码:
SELECT modelID FROM tblEbayModelCodes WHERE
LOWER(makeName) = 'harley-davidson' AND fnmodel REGEXP '[883|1000|1130|1200|1340|1450|Dyna|Electra|FLHR|FLHT|FLSTC|FLSTR|FXCW|FXSTB|Softail|Sportster|Touring|VRSCAW|VRSCD|VRSCR].*' LIMIT 1
但是,当我运行查询时,我希望代码匹配 883 的 MB-100-1 或 Sportster 的 MB-100-16,但是当我运行它时,查询返回 MB-100-0 的 Other。
我猜我的模式不正确,所以任何人都可以建议我可能需要做些什么来纠正这个问题?
非常感谢 格雷厄姆
【问题讨论】:
-
旁注:如果您的列使用正确的排序规则,
LOWER()应该不是真正必要的。