我需要一个正则表达式来让用户只有关键字 52 和有关键字 52,53 但没有 54 的用户。下面是表结构
CREATE TABLE `User` (
`id` int NOT NULL AUTO_INCREMENT,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`keywords` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Sample record1: 100, Sam, Thompson, "50,51,52,53,54"
Sample record2: 100, Wan, Thompson, "50,52,53"
Sample record3: 100, Kan, Thompson, "53,52,50,54"
50 = sports
51 = cricket
52 = soccer
53 = baseball
54 = tennis
到目前为止,这是我提出的问题。它提供了所有 3 个记录。
SELECT * FROM `User` WHERE keywords REGEXP '[[:<:]]52,53,54[[:>:]]'