我似乎无法让 substring_index() 工作:
我创建了一个简单的表,如下所示:
CREATE TABLE ContactList(
cont_id int(11) NOT NULL AUTO_INCREMENT,
last_name varchar(30),
first_name varchar(20),
interests varchar(100),
PRIMARY KEY(cont_id));
然后我填充了 ContactList 表,如下所示:
INSERT INTO ContactList (last_name, first_name, interests)
VALUES
('Murphy', 'Dave', 'Golf, Pets, Basketball'),
('Murphy', 'Ben', 'Pets, Gym, Basketball'),
('Finn', 'Belinda', 'Pets, Tennis, Knitting'),
('Murphy', 'Steve', 'Pets, Archery, Fishing');
我运行了一个快速 SELECT 以确保正确输入数据:
SELECT * FROM ContactList;
然后我运行了以下查询:
SELECT * FROM ContactList
WHERE last_name = 'Murphy'
AND SUBSTRING_INDEX(interests, ',' ,1) = 'Pets';
我原以为会拿回两条记录(我为 Ben & Steve 做过),但是,对于“兴趣”列,我假设如果它等于“宠物”(由于 substring_index),我应该只拿回一个兴趣,但是,我收回了所有的兴趣。如何使用 SUBSTRING_INDEX() 运行查询,并且如果显示为“宠物”,则仅获取每条记录的第一个兴趣列表?
顺便说一句,我使用的是 MySQL 5.5.24 版,我知道兴趣最适合他们自己的表 - 我只想看看为什么 substring_index 不从列表中选择第一个项目,如果它等于“宠物”。
感谢您的任何意见,
安迪·R ;-)