C# 怎么实现在MYSQL数据库中 更新符合条件的数据某一字段 20
例如:原数据学校班级学生标记Aa1a11Aa1a12Aa2a21Aa2a22Bb1b11Bb1b12Bb2b21Cc1c11Dd1d11Ee1e11Ee1e12Ee1e1...
例如:
原数据
学校 班级 学生 标记
A a1 a11
A a1 a12
A a2 a21
A a2 a22
B b1 b11
B b1 b12
B b2 b21
C c1 c11
D d1 d11
E e1 e11
E e1 e12
E e1 e13
E e2 e21
E e2 e22
更新后的数据
学校 班级 学生 标记
A a1 a11 *
A a1 a12
A a2 a21
A a2 a22 *
B b1 b11 *
B b1 b12
B b2 b21 *
C c1 c11
D d1 d11
E e1 e11 *
E e1 e12
E e1 e13
E e2 e21
E e2 e22 *
也就是说 对不止一个学生的学校 第一个学生和最后一个学生 在标记字段 写入一个状态
谢谢大家了 有点急哈 展开
原数据
学校 班级 学生 标记
A a1 a11
A a1 a12
A a2 a21
A a2 a22
B b1 b11
B b1 b12
B b2 b21
C c1 c11
D d1 d11
E e1 e11
E e1 e12
E e1 e13
E e2 e21
E e2 e22
更新后的数据
学校 班级 学生 标记
A a1 a11 *
A a1 a12
A a2 a21
A a2 a22 *
B b1 b11 *
B b1 b12
B b2 b21 *
C c1 c11
D d1 d11
E e1 e11 *
E e1 e12
E e1 e13
E e2 e21
E e2 e22 *
也就是说 对不止一个学生的学校 第一个学生和最后一个学生 在标记字段 写入一个状态
谢谢大家了 有点急哈 展开
2个回答
展开全部
你这样弄没任何意义呀,数据库里的行的顺序本身也不是固定的,说下你究竟想达到什么目的?
追问
我的意思是 order by 学校
初衷是 把每个学生都作为一个标签打印出来 一个学生一张标签 按学校顺序分, 如果该学校的人数>1 就在第一个学生和最后一个学生 标签上打个符号 后面便于人工按学校区分
追答
虽然不觉的这样有什么用(这种工作如果你是用程序打印的,完全可以在程序中处理的,没必要放到数据里来弄),你可以试一下这个语句,假定表名tb,你上面这个表有个自增的id
select max(id) as id from tb group by 学校 union select min(id) as id from tb group by 学校
先试试这句能不能取出最大和最小的id,如果可以
那就是update tb set 标记='*' while id in (select max(id) as id from tb group by 学校 union select min(id) as id from tb group by 学校)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string connectionStr = "";
string updateQuery = string.Format("update yourTable set 标记 = '*' where ",)
using(MySqlConnection con = new MySqlConnedtion(connectionStr))
{
using(MySqlCommand cmd = new MySqlCommand("",con);
{
cmd.ExcuteQuery();
}
}
string updateQuery = string.Format("update yourTable set 标记 = '*' where ",)
using(MySqlConnection con = new MySqlConnedtion(connectionStr))
{
using(MySqlCommand cmd = new MySqlCommand("",con);
{
cmd.ExcuteQuery();
}
}
追问
你这个根本就没有实现我想要的东西啊,where条件里面怎么写呢 关键是要这块
追答
附件为MySQL的测试脚本
string connectionStr = "";
string updateQuery = @"update students set mark = '*' where student in (
select students from (
select min(student) as students from students group by school having count(school)>2
union all
select max(student) as students from students group by school having count(school)>2
) A);",con)
using(MySqlConnection con = new MySqlConnedtion(connectionStr))
{
using(MySqlCommand cmd = new MySqlCommand(updateQuery ,con);
{
con.Open();
cmd.ExcuteQuery();
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询