我有一种设置表,其中有类型、值、公司、组等列。根据我的用户信息是否与其他列匹配,我只需要从该表中选择每种不同类型的一行。
示例我在公司 1 和组 1 中,我的设置表包含以下行:
+--+-----+-------+---------+-------+
|id|type | value | company | group |
+--+-----+-------+---------+-------+
|1 |1 | 50 | 1 | 1 |
|2 |1 | 70 | NULL | NULL |
|3 |2 | 1 | NULL | NULL |
|4 |2 | 99 | 1 | 1 |
|5 |2 | 999 | NULL | 1 |
|6 |3 | 500 | NULL | NULL |
+--+-----+-------+---------+-------+
如果有公司或集团的设置使用它,否则使用默认行(公司和集团为NULL)。还有更多的列,例如公司和组。
我需要从该表中选择 id:s 1,4 和 6,因为在这种情况下它们是我需要的设置。id 1 和 id 4 与我的用户信息匹配,id 5 也匹配,但 id 4 是完全匹配的。Id 6 匹配,因为没有更接近类型 3 的设置。
可能有数百家公司和团体,所以我不想创建一个 PHP 算法来获得正确的设置值。这将是灾难性的。
我尝试选择行并使用公司 DESC 对它们进行排序,但是在分组类型时它不起作用。我还尝试加入 max(company) ,其中公司不为空,但我被卡住了,现在试图寻求帮助。
如果有人可以帮助我解决这个问题,我将不胜感激!