我在数据库中有一个表格,其中包含以逗号分隔的多个问题(曲棍球,烹饪,电影)。
我的问题是,现在我正在触发一个类似的选择查询: -
$query="$sql="SELECT * from user where hobbies='$form_id'";
实际上在$form_id
我传递了值(游戏),现在我想显示数据库中包含游戏的所有行。请记住,我必须将此值与数据库详细信息中的列中的多个值进行比较。
我使用corephp和mysql作为数据库。我真的不知道怎么做才能帮助我。
答案 0 :(得分:0)
SELECT * FROM user WHERE hobbies LIKE '%$form_id%';
但您应该更改数据库架构,如:
users(id, name, firstname, ...)
hobbies(id, name)
user_hobbies(id_user, id_hobby)
答案 1 :(得分:0)
对John Conde的评论作出回应,这里的问题在于你的数据模型。 如果一个人可以有几个爱好,你就不应该把这些爱好存放在这个人的领域里。表。长话短说,你应该有3个表:
id
& hobbyname
。您可以想象在其他领域添加更多细节,例如室内或室外爱好等...... 这种规范化有许多优点。最大的一点是,它使您的查询更容易选择,但也更新用户的爱好。它还可以更容易地计算每个人有多少爱好等等。所以,你应该总是规范化你的数据,在创建数据库时花费更多的时间并且在你之后浪费很多时间