mysql 第3.11章 查询-查询某字段中以逗号分隔的字符串的方法 mysql 第3.11章 查询-查询某字段中以逗号分隔的字符串的方法

2小时前

①、创建表

CREATE TABLE test(
    id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),
    pname VARCHAR(20) NOT NULL,
    pnum VARCHAR(50) NOT NULL
);

②、插入带有逗号分隔的测试数据

INSERT INTO test(pname,pnum) VALUES(产品1,1,2,4);
INSERT INTO test(pname,pnum) VALUES(产品2,2,4,7); 
INSERT INTO test(pname,pnum) VALUES(产品3,3,4); 
INSERT INTO test(pname,pnum) VALUES(产品4,1,7,8,9); 
INSERT INTO test(pname,pnum) VALUES(产品5,33,4);

③、查找 pnum 字段中包含 3 或者 9 的记录

方法一:使用 find_in_set

SELECT * FROM test WHERE find_in_set(3,pnum) OR find_in_set(9,pnum);

方法二:使用正则

SELECT * FROM test WHERE pnum REGEXP (3|9);

这样会产生多条记录,33也被查找出来了。换一种方式:

SELECT * FROM test WHERE CONCAT(,,pnum,,) REGEXP[^0-9]+[3|9][^0-9]+";

CONCAT 用于将多个字符串连接成一个字符串,返回结果为连接参数产生的字符串。

阅读 4

mysql文章
带到手机上看