SELECT * FROM tab WHERE INSTR(RIGHT(descr,30),'财经')>0
判断就在 INSTR(right(descr,30),'财经')>0,先取右边30个字符,再判断中间是否包含你要的结果。
如果你要在程序里判断表里是否包含,可以写成这样
SELECT ifNull(SUM(INSTR(RIGHT(c1,30),'财经')),0)as c FROM tab
再取根据结果判断是否大于0
给你一个Oracle的示例,请根据自己的应用场景,参考调测自己mysql的代码在Oracle数据库中:
declare
sname varchar2( 20)--声明变量
cursor student_cursor is select sname from student --声明指向表student的【游标】
begin
open student_cursor--打开游标
fetch student_cursor into sname --获取游标的当前指向值,使游标指针往下移动
while student_cursor%found --【你提问的应该是这个条件】判断游标指针是否指向某行记录,即是否已遍历完全表
loop--循环遍历
dbms_output.put_line ('学生姓名' ||sname )--输出当前遍历访问的行记录信息
fetch student_cursor into sname--获取游标的当前指向值,使游标指针往下移动
end loop--循环体结束
close student_cursor--关闭游标,对应前面open *** 作
end
另一个在任何数据库都通用的办法是:
首先统计表的行数并记录下来,假定是变量cnt_stu,再定义一个计数变量i=1
在循环体中,当i<=cnt_stu,就执行遍历,并且i=i+1,这样当遍历完了也会跳出循环体。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)