MySQL,将单词分组并将它们保存到另外两个表中

时间:2016-09-13 06:06:03

标签: mysql sql grouping

有三张桌子:

<script type="text/javascript">
$(document).ready(function () {
    alert('hi');
    var source = [
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/numberinput.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxNumberInput</span></div>", title: 'jqxNumberInput' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/progressbar.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxProgressBar</span></div>", title: 'jqxProgressBar' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/calendar.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxCalendar</span></div>", title: 'jqxCalendar' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/button.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxButton</span></div>", title: 'jqxButton' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/dropdownlist.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxDropDownList</span></div>", title: 'jqxDropDownList' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/listbox.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxListBox</span></div>", title: 'jqxListBox' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/tooltip.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxTooltip</span></div>", title: 'jqxTooltip' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/scrollbar.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxScrollBar</span></div>", title: 'jqxScrollBar' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/datetimeinput.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxDateTimeInput</span></div>", title: 'jqxDateTimeInput' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/expander.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxExpander</span></div>", title: 'jqxExpander' },
                { html: "<div style='height: 20px; float: left;'><img style='float: left; margin-top: 2px; margin-right: 5px;' src='../../images/menu.png'/><span style='float: left; font-size: 13px; font-family: Verdana Arial;'>jqxMenu</span></div>", title: 'jqxMenu' },
            ];

            $("#jqxWidget").jqxDropDownList({ source: source, selectedIndex: 0, theme: "bootstrap" });
});
    </script>

<div id="jqxWidget">


</div>
</div>

现在我想将每个products.name分成1-3个字的单词组,如下所示:

products (relevant columns: id, name)
wordgroups (relevant columns: id, wordgroup)
productwordgroups (relevant columns: wordgroupid, productid)

如果这些词组在表格中不存在,则必须保存到wordgroups.wordgroup。

最后,如果表格中已存在关系,则表格产品和表格字组之间的多对多关系必须保存到productwordgroups。

猜猜这可以通过一些令人讨厌的SQL查询来完成,但到目前为止我还没有能够欺骗MySQL这样做。

感谢。

1 个答案:

答案 0 :(得分:0)

我已经为您解决了问题的第二部分,即如果您将所有字母提取到给定名称的单独行。

提取需要在程序中完成。

我的代码,其中字母是输入表,字母是列:

select * from letters
union all
select a.letter||' '||b.letter as letter from letters a,letters b 
where a.letter<b.letter
union all
select a.letter||' '||b.letter||' '||c.letter as letter from letters a,letters b,letters c 
where a.letter<b.letter and b.letter<c.letter

这是我的意见:

A
B
C
D
E

这是我的输出:

A
B
C
D
E
A B
A C
A D
A E
B C
B D
B E
C D
C E
D E
A B C
A B D
A B E
A C D
A C E
A D E
B C D
B C E
B D E
C D E