MYSQL想要判断一个字段里是最后的N个字符串是否含有某个字符串。

MYSQL想要判断一个字段里是最后的N个字符串是否含有某个字符串。,第1张

以下语句返回 tab表所有的descr字段中最后的30个字符包含“财经”的结果:

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,这样当遍历完了也会跳出循环体。


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

原文地址: http://outofmemory.cn/zaji/7423162.html

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

发表评论

登录后才能评论

评论列表(0条)

保存