mysql 函数: find_in_set()、instr()

老余博客

1. find_in_set() 用于在多个字符串子链中查询字符串


  1. find_in_set(str, strlist)

str: 要查询的字符串

strlist: 字段名或字符串, 多个子链以英文逗号 `分割

返回值: 假如字符串 str 在由 N 个子链组成的字符串列表 strlist 中,则返回值的范围在 1 到 N 之间, 不在 strlist 中则返回 0

以下示例中返回值则为: 3 , 因为字符串 yang 在第三个子链中

  1. select find_in_set('yang', 'liang,chen,yang');

应用场景:

在文章表 article 中有个标签字段 tags,一个文章可以有多个标签

标签 id: 1 html 2 css 3 javascript, tags 以 1,2,3 的格式存储标签,那么我们可以使用 find_in_set 查找出 tags 中有 1 的标签

  1. select * from article where find_in_set(1, `tags`);

2. instr() 用于在字符串中查询子字符串


用于在字符串中查询子字符串, 返回子字符串在字符串中首次出现的位置(下标从 1 开始);如果没有找到,则返回 0

  1. select * from `article` where instr(`tags`, 2);
  2. select * from `article` where `tags` like '%2%';
赞(67)
分享
文章版权声明:除非注明,否则均为老余个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 0 条评论,2307人围观)
取消
微信二维码
微信二维码
支付宝二维码
取消
老余博客微信公众号二维码