CREATE TABLE student( id INT, name VARCHAR(20), hobby SET('basketball', 'traveling', 'reading') );
上面的SQL语句中定义了一个名为student的表,其中hobby列使用了SET类型,它有三个选项:basketball、traveling和reading。当用户往这个表中插入数据时,可以选择将hobby列设置为其中一个或多个选项值。
INSERT INTO student(id, name, hobby) VALUES(1, 'Jack', 'basketball,reading'); INSERT INTO student(id, name, hobby) VALUES(2, 'Tom', 'traveling');
上面的SQL语句中向student表中分别插入了两条数据,其中Jack选择了basketball和reading这两个选项作为他的爱好,而Tom则选择了traveling作为他的爱好。
当需要查询出拥有某个选项爱好的学生时,可以使用MySQL中的FIND_IN_SET函数:
SELECT * FROM student WHERE FIND_IN_SET('traveling', hobby)>0;
上面的SQL语句会查询出拥有traveling这个选项爱好的学生,结果为Tom这一个学生。