
你好哦..看到你的问题,我有如下见解:
你是想得到不连续行,如果要查询这个的话,有两种方式:
可以用到主键,要知道主键是唯一的而且也是连续的,所以你可以使用sql语句:
select * from table(表名) where primarykey(主键) % 2 = 0
第二种可以利用行 页进行查询 (套用for循坏)
for(int page = 0 i<pageSum i++ ){
select * from table(表名) limit page-1,1
}
当然还有很多查询方法,比如你在表中设置特定的字段进行查询,最后希望能采纳 谢谢哇!
1 如果只是想查询出是那一列,可创建一个自定义函数来实现:delimiter |
drop function if exists fun_tab_test |
create function fun_tab_test (par_id int, par_comparevalue int)
returns varchar(20)
begin
declare rvalue varchar(20)
select ( case when count(*) = 0 then '' when b = par_comparevalue then 'b' when c = par_comparevalue then 'c' else '' end ) as colA
into rvalue from tab_naem where id = par_id
return rvalue
end |
delimiter
使用:
select fun_tab_test(1, 400) --参数分别为传入的id和对比的值400
结果为含400值的列或''(没有找见包含的列)时,接下来做你想做的update或delete等即可;
2 如果要完成一个自动的update,可使用before update触发器,提供个简单示例,进行适应性修改:(这里n为表名,a为id列,b,c 为两个可能包含400值的列)
delimiter |
drop trigger if exists tr_n_before_update|
create trigger tr_n_before_update before update on n
for each row begin
declare svalue int
select b into svalue from n where n.a = new.a
if svalue = 400 then
set new.b = 0
end if
select c into svalue from n where n.a = new.a
if svalue = 400 then
set new.c = 0
end if
end|
delimiter
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)