请帮助我执行以下sql查询
有人能纠正我下面的疑问吗,我是软件开发领域的新手, 我将一个逗号分隔形式的字符串生成器对象添加到我的查询中,但它不会生成所需的结果qyery如下所示 string cmd=“从[placed_student]中选择*,其中passout_year=@passout和company_id=@companyId,course_id=@courseId和branch_id位于(“+sb+”)”请帮助我执行以下sql查询,sql,mysql,Sql,Mysql,有人能纠正我下面的疑问吗,我是软件开发领域的新手, 我将一个逗号分隔形式的字符串生成器对象添加到我的查询中,但它不会生成所需的结果qyery如下所示 string cmd=“从[placed_student]中选择*,其中passout_year=@passout和company_id=@companyId,course_id=@courseId和branch_id位于(“+sb+”)” 你的问题在于: AND branch_id IN('" + sb + "')" 您将得到如下查询: ...
你的问题在于:
AND branch_id IN('" + sb + "')"
您将得到如下查询:
... AND branch_id IN('1,2,3,')
如果branch_id列是一个整数,则不应引用它,并且插入逗号的方式应稍有不同,以避免出现尾随逗号,例如:
StringBuilder sb = new StringBuilder();
String sep = "";
foreach (ListItem li in branch.Items) {
if (li.Selected == true) {
sb.Append (sep + Convert.ToInt32(li.Value));
sep = ",";
}
}
String cmd = "SELECT * FROM [placed_student] " +
"WHERE passout_year = @passout " +
"AND company_id = @companyId " +
"AND course_id = @courseId " +
"AND branch_id IN (" + sb + ")";
这是通过将初始分隔符设置为空字符串,然后在添加每个项目后设置为逗号来实现的。所以,当添加A,B和C时,会得到“A”,“A,B”和“A,B,C”。我还删除了对整数的错误引号
您可能还需要了解没有选择任何项目的情况,否则您将导致:
... AND branch_id IN ()
... AND branch_id IN ()