我有一组数据,我基本上需要“清理”
用户将他们最喜欢的Fragrance输入到表单中,并在表单上我自动完成以帮助选择,并希望减少拼写错误,这对于手头的任务至关重要。
例如,以下是我对Paco Rabanne 100万产品的数据 - 但是,我希望他们选择Paco Rabanne 1百万,但我不希望他们选择各种乳液,肥皂,除臭剂等它是我感兴趣的品牌和香水选择。
我所拥有的数据示例如下所示。
Paco Rabanne 1 Million Gift Set
Paco Rabanne 1 Million Deodorant Stick 75ml
Paco Rabanne 1 Million Deodorant
Paco Rabanne 1 Million Eau de Toilette
Paco Rabanne 1 Million Gift Set 50ml
Paco Rabanne 1 Million Shower Gel 150ml
Paco Rabanne 1 Million Eau De Toilette Spray 100ml
Paco Rabanne 1 Million After Shave Lotion 100ml
我有一个查询,它会在项目标题中取出某些单词并显示剩下的内容
查询:
select DISTINCT( TRIM( LEFT(title,
IF( LOCATE('Deodorant', title), LOCATE('Deodorant', title) - 1,
IF( LOCATE('Shower', title), LOCATE('Shower', title) - 1,
IF( LOCATE('Refillable', title), LOCATE('Refillable', title) - 1,
IF( LOCATE('Spray', title), LOCATE('Spray', title) - 1,
IF( LOCATE('ml', title), LOCATE('ml', title) - 1,
999
)
)
)
))))) FROM `PRprod_FRAGRANCES`
这基本上从表中选择,同时省略标题中的除臭剂或淋浴等等任何重复行,但我想永久删除记录而不是每次运行此查询,这是昂贵的,因为表有超过200,000行< / p>
基本上,我想转向查询,因此它不会显示我不想要的行,但实际上会删除它们。
除非有另一种方法可以解决这个问题吗?
这是表格定义:
field, type, NULL, Key, Default, Extra
autoc_id, int(11), NO, PRI, , auto_increment
title, varchar(128), YES, , ,
genre, varchar(128), YES, , ,
author, varchar(128), YES, , ,
actors, varchar(256), YES, , ,
artist, varchar(128), YES, , ,
main_category, varchar(128), NO, , ,
dateadded, timestamp, NO, , CURRENT_TIMESTAMP,
答案 0 :(得分:1)
你的问题仍然有点模糊。
在您的示例中,您拥有数据......
Paco Rabanne 1 Million Gift Set
Paco Rabanne 1 Million Deodorant Stick 75ml
Paco Rabanne 1 Million Deodorant
Paco Rabanne 1 Million Eau de Toilette
Paco Rabanne 1 Million Gift Set 50ml
Paco Rabanne 1 Million Shower Gel 150ml
Paco Rabanne 1 Million Eau De Toilette Spray 100ml
Paco Rabanne 1 Million After Shave Lotion 100ml
你的桌子上还有其他字段吗?比如id等?或者只是一个领域?
上面的例子只出现一次,或者每次出现多次?
根据您的代码将数据分成几组,可以得到以下组...
Original | After Processing
Paco Rabanne 1 Million Deodorant | Paco Rabanne 1 Million
Paco Rabanne 1 Million Deodorant Stick 75ml | Paco Rabanne 1 Million
Paco Rabanne 1 Million Shower Gel 150ml | Paco Rabanne 1 Million
Paco Rabanne 1 Million Eau De Toilette Spray 100ml | Paco Rabanne 1 Million Eau De Toilette Spray 10
Paco Rabanne 1 Million Gift Set 50ml | Paco Rabanne 1 Million Gift Set 5
Paco Rabanne 1 Million After Shave Lotion 100ml | Paco Rabanne 1 Million After Shave Lotion 10
Paco Rabanne 1 Million Gift Set | Paco Rabanne 1 Million Gift Set
Paco Rabanne 1 Million Eau de Toilette | Paco Rabanne 1 Million Eau de Toilette
注意:我认为您不希望- 1
过滤器中有ml
。它将100ml
变为10
。
对于第一组,您是否希望删除所有记录并替换为仅Paco Rabanne 1 Million Deodorant
的单个记录?或者你想要删除其中2个,并保留其中1个?如果是这样,我们应该如何确定要保留哪个?
对于接下来的三个组,每个组中只有1个记录,但是你已经将0ml
切掉了。您想用缩短的版本替换这些记录吗?或者对他们什么都不做?
最后两组每组只有1条记录,过滤器对它们没有任何作用。他们独自留下了吗?
然后,一旦你处理了这个,新的数据会一次又一次地添加吗?您是否需要可以重复运行的代码,或者您是否需要像单次运行那样执行此操作?
不幸的是,如果没有更多信息,我认为我们无法提供太多帮助。
答案 1 :(得分:0)
对我来说,它看起来更像是一个不合适的数据模型:
如果您可以控制存储数据的表数,并且可以随意添加表,最简单的解决方案是使用两个表:一个用于香水,一个用于包装。