我以这种方式在列中有一个值
“ID = Clarizen,OU = GROUP,DC = OpenSSO的,DC = java中,DC =净| ID = devendrat,OU = USER,DC = OpenSSO的,DC = java中,DC =净”
我想从此字符串中提取组名称和用户名,并将其存储到另一个表的不同列中。
期望的结果:
Clarizen作为Groupname devendrat as Username
请帮忙
答案 0 :(得分:0)
您正在寻找CharIndex和Substring选项。 以下适用于T-SQL。我不确定My SQL中的语法
SELECT REPLACE(SUBSTRING(ColumnName,1,CHARINDEX(',',ColumnName) - 1),'ID=','')
AS Groupname,
REPLACE(SUBSTRING(SUBSTRING(ColumnName,CHARINDEX('|',ColumnName),
LEN(ColumnName)),1,
CHARINDEX(',',ColumnName) - 1),'|ID=','') AS Username
答案 1 :(得分:-1)
(对不起,这是C#我忽略了你使用的是mysql,所以答案对你来说没用,但除非有人要删除,否则我会把它留在这里)
使用字符串拆分可以完成工作,这是我鞭打的东西,它不会是最佳的,但它肯定有效!
string parse_me = "id=Clarizen,ou=GROUP,dc=opensso,dc=java,dc=net|id=devendrat,ou=USER,dc=opensso,dc=java,dc=net";
string[] lines = parse_me.Split(',');
List<string> variables = new List<string>();
List<string> values = new List<string>();
foreach (string line in lines)
{
string[] pair = line.Split('=');
//Console.WriteLine(line);
variables.Add(pair[0]);
values.Add(pair[1]);
}
string group = "";
string user = "";
if (variables.Count == values.Count)
{
for (int i = 0; i < variables.Count; ++i )
{
Console.Write(variables[i]);
Console.Write(" : ");
Console.WriteLine(values[i]);
if (variables[i] == "ou")
{
if (group == "")
{
group = values[i];
}
else if (user == "")
{
user = values[i];
}
}
}
}
Console.WriteLine("Group is: " + group);
Console.WriteLine("User is: " + user);
Console.ReadLine();