我有两张桌子:
用户:
+-------+-------------+------+
| id | name | type |
+-------+-------------+------+
| 1 | Name 1 | 1 |
| 2 | Name 2 | 2 |
| 3 | Name 3 | 3 |
+-------+-------------+------+
消息:
+-------+-------------+-----------+----------+
| id | poster_id | message | for_type |
+-------+-------------+-----------+----------+
| 1 | 3 | mess1 | 1 |
| 2 | 2 | mess2 | 2,3 |
| 3 | 1 | mess3 | 3,1 |
+-------+-------------+-----------+----------+
for_type?
中 $ user_type 上获取消息的查询SELECT messages.*, users.name FROM messages LEFT JOIN users ON
messages.poster_id = users.id WHERE messages.id > ' . $last_message_id . ' AND
' . $user_type . ' IN (messages.for_type)
ORDER BY news.id ASC
答案 0 :(得分:1)
如果我理解正确,你想要选择一个特定的for_type,并且遇到列没有正确规范化的问题,有多个值。如果无法正确规范化结构,则where子句中的LIKE命令可以正常工作,例如:
for_type LIKE "%1%"
将从消息中获取记录1和3。