暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql使用substring分割参数实例

原创 AlbertS 2019-11-21
702

版权声明: 转载请注明出处!本文采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际许可协议

代码中常常应到字符串的分割,其实有时数据库中的数据也需要进行字符串分割,比如按用户名查找用户信息,如果是传入一个用户名当然好实现,若是想要一次传入多个用户名则需要考虑一下,传入多个参数当然是不现实的,如果把多个用户名合并到一个字符串中,用都好分割开来,是一个不错的选择,所以可以使用CONCAT,substring,INSTR等函数配合使用来达到目的,实例代码如下:

DROP PROCEDURE IF EXISTS TestSubString; CREATE PROCEDURE TestSubString (IN paramAccount VARBINARY(512)) BEGIN SET @result = 1; SET @paramAccountNames = paramAccount; SET @run = 1; SET @querySql =''; WHILE( @run = 1) DO SET @dotIndex= INSTR(@paramAccountNames,','); IF(@dotIndex = 0) THEN BEGIN SET @userId = @paramAccountNames; SET @run=0; SET @querySql = CONCAT(@querySql,' AccountName=\'', @userId, '\''); END; ELSE BEGIN SET @userId = substring(@paramAccountNames,1,@dotIndex-1); SET @paramAccountNames=substring(@paramAccountNames,@dotIndex+1, LENGTH(@paramAccountNames)); SET @querySql = CONCAT(@querySql,' AccountName=\'', @userId, '\'', ' or'); END; END IF; END WHILE; SET @prepareStatement = CONCAT('SELECT AccountName as id, Level FROM accountinfo WHERE ', @querySql, ' order by id;'); PREPARE stmt FROM @prepareStatement; EXECUTE stmt ; SELECT @prepareStatement; SELECT @querySql; SET @result = 1; END
最后修改时间:2019-11-21 22:58:59
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论