使用MySQL在管道分隔列中查找匹配的行

要找到匹配项,请在MySQL中使用正则表达式。让我们首先创建一个表-

mysql> create table DemoTable
   -> (
   -> Value varchar(60)
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable values('8|56|78|45');
mysql> insert into DemoTable values('9876');
mysql> insert into DemoTable values('98|8');
mysql> insert into DemoTable values('3|8|9');
mysql> insert into DemoTable values('97|94');
mysql> insert into DemoTable values('103|104|110|8|97');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable ;

这将产生以下输出-

+------------------+
| Value            |
+------------------+
| 8|56|78|45       |
| 9876             |
| 98|8             |
| 3|8|9            |
| 97|94            |
| 103|104|110|8|97 |
+------------------+
6 rows in set (0.00 sec)

这是查找在以竖线分隔的列中具有匹配项的行的查询-

mysql> select *from DemoTable
   -> where Value regexp '\\|8\\|';

这将产生以下输出-

+------------------+
| Value            |
+------------------+
| 3|8|9            |
| 103|104|110|8|97 |
+------------------+
2 rows in set (0.00 sec)