MYSQL语句如何查询表中的表中的行?

MYSQL语句如何查询表中的表中的行?,第1张

关联查询即可实现,表1关联表2,条件就是你如何从表1找到表2,关联后可以同时获取两个表的所有字段,就可以过滤字段,指定显示的字段,格式参考:select a.字段,b.genger from 表1 a join 表2 b on a.条件字段=b.条件字段。

你好哦..看到你的问题,我有如下见解:

你是想得到不连续行,如果要查询这个的话,有两种方式:

可以用到主键,要知道主键是唯一的而且也是连续的,所以你可以使用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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7187931.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存