我必须表,contacts
和groups
。
里面contacts
我有 3 列:id
first_name
last_last
里面groups
我有 2 列:id
linked
我想将联系人分组。所以我认为最好的方法是,当您将联系人添加到组时,它会将联系人 ID 添加到列中以逗号分隔的联系人 ID 列表中linked
。
因此,如果您将联系人 1、4、14 和 24 添加到特定组,则该linked
列将具有此值1,4,14,24
现在我想显示该组中的联系人。所以我explode()
的linked
值,然后使用 aforeach()
在展开的数组中循环,并在每个循环中通过 MySQL 选择该联系人的名字和姓氏并显示它。
所有这些工作正常。我的问题是我意识到我想对该组中显示的联系人进行排序。但它们按照它们在组中的排列顺序显示。
我希望能够按名字升序或降序排序,但我不知道如何排序,因为我选择了 a 中的每个联系人foreach()
并对其进行回显。
PS我想可能会在联系人上创建一个列groups
并存储联系人的所有组,就像我存储组中的所有联系人一样。因此,如果联系人位于组 1、2、4 和 6 中,则该联系人groups
列的值为1,2,4,6
。唯一的问题是,假设我正在搜索第 6 组中的所有联系人,我如何在 MySQL 语句中搜索该列表?我认为最好的方法是SELECT first_name FROM contacts WHERE groups LIKE '%6%'
,但是如果联系人在第 60 组中怎么办?即使它不在正确的组中,它也不会选择该联系人吗?