【发布时间】:2014-09-27 12:35:05
【问题描述】:
MYSQL 表 my_contacts
contact_id INT(11) AUTO_INCREMENT,
first_name VARCHAR(255),
interests SET('Animals','Trading Cards','Geocaching','Horseback Riding','Movies','Hiking');
SQL 查询
SELECT * FROM my_contacts WHERE interests = 'Animals';
示例
如果我的表中有一条与动物感兴趣的记录,则上面的查询可以正常工作。 ;-)
但是,如果我的表中有一条感兴趣的记录Animals,Hiking,上面的查询不会返回任何结果。 :-(
为什么?
【问题讨论】:
-
使用
LIKE 'Animals%'顺便说一句,你存储的数据有误。 -
LIKE '%Animals%' 即使 Animal 介于两者之间,它也会匹配。我同意@Mihai。
-
非常感谢。有用。我相信您对我使用的代码是错误的是正确的。我是 MySQL 的新手。我正在努力学习 :-) 问题,所以为了我以后的参考,当我有多项选择来分配给一个列时,我还需要使用 SET 吗?
-
设置没问题,但是你没有通过在一个单元格中存储超过 1 个值来使用数据库的关系能力。因为现在你没有 2 个爱好,而是一个需要精心查询才能拆开的字符串.
-
谢谢大家。我知道有很多东西要学习:-(祝你周末愉快。