我有两个包含以下信息的表:
产品
Name | ID |
Name 包含一个短字符串,指示行的名称和语言。
语言
Language | ID |
语言将是上面名称列中包含的相同子字符串。
我想做的是在我的 Products 表中添加一个名为 LanguageID 的列。
然后,我将从 Name 列中提取指示语言的子字符串,并对 Languages 表中的 Language 列进行不区分大小写的比较。在找到匹配项的地方,我想将 Languages 表中的 ID 值插入到新创建的 LanguageID 列中,从而创建外键关系。
因此,例如在我的产品表中,我有:
Name | ID
Product 1 - enGlIsh | 1
在我的语言表中,我有:
Language | ID
English | 77
所以我想在我的 Products 表中得到的是:
Name | ID | LanguageID
Product 1 - enGlIsh | 1 | 77
我已经编写了一个正则表达式来从我的子字符串中返回语言,但是我不确定如何使用它并在 SQL 服务器中构造这个查询。我怎样才能做到这一点 ?
这是正则表达式:
Regex regEx = new Regex(@"(.+\s*-\s*.+\s*-\s*.+)\s*-\s*(\w{1,3}\s*-\s*\w{1,3})\s*-\s*.+");
string language = regEx.Match( NAME ).Groups[2].Value.ToString();