【发布时间】:2015-08-24 08:11:28
【问题描述】:
我有记录 item_name。每个 item_name 的长名称由 11 个破折号 (-) 分隔。我使用 10 选择表单来过滤搜索表单中的数据。如果该列为空,我通过了选择表单。用户可以在其中选择多个选项。当用户在第 9 个选择表单中选择“S”和“I”时,我遇到了问题。因为它会与其他部分以 s 结尾的其他记录混淆。
我试过这样查询:
select item_name from table_name where (item_name like '%S-%')
===== 数据样本 =====
- Suspeno-Fazalqe-ST-Jig-Baroque-Chop Plate 12"--2118 Bloom-Gloss-Royal Of London-I-2118 Bloom
- Fazalqe-ST-Jig-Baroque-Cup--Maroon-#Gloss-Royal Of London-S-2118 Bloom
- Fazalqe-ST-Jig-Baroque-Saucer 6.5--栗色-#Gloss-Royal Of London-S-2118 Bloom
- Suspeno-Fazal BS-ST-Jig-Baroque-Soup Plate--2118 Bloom-Gloss-Royal Of London-I-2118 Bloom
- Suspeno-Fazal-ST-Jig-Baroque-Salad Plate 7.25--2118 Bloom-Gloss-Royal Of London-S-2118 Bloom
- Fazalqe-ST-Cas-Baroque-Creamer--Brown Orchid-#Gloss-Royal Of London-I-2139 Bloom Brown
- Fazalqe-ST-Cas-Baroque-Sugar Lid---#Gloss--I-2139 Bloom Brown
- Fazalqe-ST-Cas-Baroque-Sugar--棕色兰花-#Gloss-Royal Of London-I-2139 Bloom Brown
- Fazalqe-ST-Cas-Baroque-Teapot--Brown Orchid-#Gloss-Royal Of London-I-2139 Bloom Brown
我想也许我需要正则表达式,但我没有足够的技能。我只是想我是否可以使用这样的通配符进行查询
select item_name from table_name where item_name like "*-*-*-*-*-*-*-*-(S-)*"
正确的结果应该是行号 2,3 和 5。 有人可以帮助我意识到这一点。谢谢你。
【问题讨论】:
-
你需要一个正则表达式。有很多教程可以帮助您学习。这是一项很有用的技能。