关于‘,’分割的字符串的查询

经常遇到类似‘1,4,7,5,36,14’这样的字符串,在数据库里面怎么处理呢?!

order

id    name    total    goodIds

1    订单1    5            4,14,6,7,46

2    订单2    7            1,11,111,32,24

3    订单3    3            1,14,7

4    订单4    4            1,13, 4,7

单个查找:查出包涵goodId为1的的订单

  1. select * from order where CONCAT(‘,‘,goodIds,‘,‘) LIKE CONCAT(‘%,‘,1,‘,%‘)
  2. select * from order where  FIND_IN_SET(‘1‘,goodIds);

有个需求:统计goodId的个数>3

  1. select * from order where goodIds like ‘%,%,%,%‘
  2. select * from order where goodIds REGEXP ‘([0-9]+,){3}‘   ---这个是正则匹配
时间: 2024-10-22 03:05:34

关于‘,’分割的字符串的查询的相关文章

Java将一段逗号分割的字符串转换成一个数组

String 类:String 类代表字符串.Java 程序中的所有字符串字面值都作为此类的实例实现.字符串是常量,它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以 可以共享.String 类包括的方法可用于检查序列的单个字符.比较字符串.搜索字符串.提取子字符串.创建字符串副本并将所有字符全部转换为大写或小写.Java 语言提供对字符串串联符号("+")以及将其他 对象转换为字符串的特殊支持.字符串串联是通过 StringBuilde

SAP ABAP编程 在string类型A字符串中查询匹配string类型B字符串

如题,在string类型A字符串中查询匹配string类型B字符串,方法如下: DATA: a TYPE string VALUE 'ABCDEFGHIJKLNM', b TYPE string VALUE 'EFGHIJ', c TYPE string . DATA: off  TYPE i VALUE 0,   "从自己个字符开始查找 moff TYPE i, mlen TYPE i. FIND b IN SECTION OFFSET off OF a MATCH OFFSET moff &

字符串操作--查询字符串出现的次数

1.获取一个字符串在另一个字符串中出现的次数 思路: 1,定义个计数器. 2,获取kk第一次出现的位置. 3,从第一次出现位置后剩余的字符串中继续获取kk出现的位置. 每获取一次就计数一次. 4,当获取不到时,计数完成 程序示例: package tan; public class StringTest2 { public static void sop(String str) { System.out.println(str); } // 缺陷:每次截取字符串占用了很多内存空间 public

随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里

JS /* * 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里 * @id 要插入到DOM元素的ID * * 输入值为图片URL 字符串 * */ function addImages(id){ /*字符串 变量*/ var images='{$content.pictureurl} ' ; /* console.log( images ) ;*/ /*字符串分割成字符串数组 split*/ var StringArray = images.split(','); /* consol

js怎样截取以'-'分割的字符串

在日期2019-09-01,怎样截取年只要月和日,下面是主要代码 var aa = '2019-09-01'; var bb = aa.split('-'); console.log(bb);//打印结果为:["2019", "09", "01"] var monthDay = bb[1]+'-'+bb[2]; console.log(monthDay)//打印结果为:09-01 实现以’/‘,或者’a‘字母,用类似的方法都能实现 js怎样截取以

ThinkPHP可以支持直接使用字符串作为查询条件

ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用数组或者对象来作为查询条件,因为会更加安全. 大理石平台哪家好 一.使用字符串作为查询条件 这是最传统的方式,但是安全性不高,例如: $User = M("User"); // 实例化User对象 $User->where('type=1 AND status=1')->select(); 最后生成的SQL语句是 SELECT * FROM think_user WHERE type=1 AND st

1221. 分割平衡字符串

1221. 分割平衡字符串 描述: 在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的. 给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串. 返回可以通过分割得到的平衡字符串的最大数量. 示例 1: 输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'.示例 2: 输入

node中转换URL字符串与查询字符串

一个完整的URL字符串中,从"?"(不包括?)到"#"(如果存在#)或者到该URL字符串结束(如果不存在#)的这一部分称为查询字符串. 可以使用Query String模块中的parse方法将该字符串转换为一个对象,parse方法的使用方式如下所示: querystring.parse(str,[sep],[eq],[options]); str表示被转换的查询字符串, sep.字符串中的分隔符,默认是& eq.该字符串中的分配符,默认为=."=&

Oracle 字段是多个值的字符串的查询处理

1.创建两张表一张用户表(T_User),一张兴趣小组表T_Group,其中小组成员字段存储用户ID列表以逗号隔开, 表:T_User 编号(F_ID) 名称(用户名) 1 张三 2 李四 3 王五 表:T_Group 编号(F_ID)  名称(兴趣小组名字)//group_name    兴趣小组成员ID/member_list 1 奥数    1,2 2 动物世界    2 3 艺术  1,2,3 要求查询结果: 编号(F_ID)  名称(兴趣小组名字)  兴趣小组成员ID 1 奥数 张三,