PHP MySQL根据多种条件显示消息
我正在用php/mysql进行一个项目,但发现很难继续。我的情况如下: 我有两个表,第一个是用户,第二个是消息。表1包含用户ID、性别、年龄、城市和国家。第二个表包含消息ID、消息、性别、最小年龄、最大年龄、城市和国家 现在,我想要实现的是向遵循消息表中所有条件的用户显示特定消息。例如: 如果我在消息表中给出如下条件PHP MySQL根据多种条件显示消息,php,mysql,Php,Mysql,我正在用php/mysql进行一个项目,但发现很难继续。我的情况如下: 我有两个表,第一个是用户,第二个是消息。表1包含用户ID、性别、年龄、城市和国家。第二个表包含消息ID、消息、性别、最小年龄、最大年龄、城市和国家 现在,我想要实现的是向遵循消息表中所有条件的用户显示特定消息。例如: 如果我在消息表中给出如下条件 ========================================================================== messageid || me
==========================================================================
messageid || message || gender || minimum_age || maximum_age || city || country
1 Messages 1 male 20 30 london UK
2 Messages 2 female ANY 40 gurgaon IN
我的年龄是24岁,性别是男性,城市是伦敦,国家是英国。然后我将在第页上看到消息1。如果所有条件都不匹配,那么我将看到任何消息
注意:有些用户在用户数据库中没有年龄、城市、国家或性别
我需要mysql查询方面的帮助或最好的技术来完成这项任务
SELECT u.userid, u.gender, u.age, u.city, u.country, m.messageid,
m.minimum_age, m.maximum_age, m.city, m.country
FROM users u, message m
WHERE u.gender = m.gender and u.age between m.minimum_age and m.maximum_age
and u.city = m.city and u.country = m.country
差不多吧
然后检查resultset,如果为空,则更改查询以选择所有消息。执行此操作的一种方法是在SQL查询中使用和 您需要的是table.field,而不是field.table。此外,连接可能更有效。是的,正确的修正。那有点蹩脚。关于连接,我认为这取决于作者如何创建查询。有时,我发现在不涉及连接的情况下在表之间创建动态查询更容易,除非存在性能问题。他也可以使用事先准备好的声明。我有大约200000名用户,每秒访问一次网站,许多用户并没有在表中指定城市或国家、性别或年龄。我是说他们还没有填写个人资料。现在,如果一个条件的查询结果为空,那么如何切换到下一个条件。逻辑是什么?如果其中一个条件为假,预期的结果集是什么?您是否应该显示消息?