я в настоящее время имеют следующие записи:SQL Заявление Позиция записи в зависимости от конкретных значений
+----+-------------+-----------------+--------+-----------------+-------------+
| id | postal_code | program_type_id | gender | school_location | school_type |
+----+-------------+-----------------+--------+-----------------+-------------+
| 1 | 66202 | 2 | female | | |
| 2 | 67487 | 2 | male | rural | public |
| 3 | 68504 | 2 | female | rural | private |
| 4 | 67554 | 2 | female | rural | public |
| 5 | 67212 | 2 | female | urban | public |
+----+-------------+-----------------+--------+-----------------+-------------+
У меня есть следующая запись:
mysql> select id, postal_code, program_type_id, gender, school_location, school_type from applications limit 1 offset 6;
+----+-------------+-----------------+--------+-----------------+-------------+
| id | postal_code | program_type_id | gender | school_location | school_type |
+----+-------------+-----------------+--------+-----------------+-------------+
| 7 | 66202 | 2 | female | urban | public |
+----+-------------+-----------------+--------+-----------------+-------------+
у меня будет соответствовать этой записи 7
к записывает в базу данных определенным образом и дает оценки.
Scoring:
Matching POSTAL_CODE = 1000
точки Matching program_type_id = 490
точек Matching пола = 20
точки Matching school_type
= 500 баллов
Теперь записи я должен извлекать должен быть в следующем порядке :
+----+-------------+-----------------+--------+-----------------+-------------+
| id | postal_code | program_type_id | gender | school_location | school_type |
+----+-------------+-----------------+--------+-----------------+-------------+
| 1 | 66202 | 2 | male | | | 1K points
| 3 | 68504 | 2 | female | rural | private | 520 points
| 2 | 67487 | 1 | male | rural | public | 490 points
| 4 | 67554 | 1 | female | rural | public | 20 points
| 5 | 67212 | 1 | female | urban | public | 20 points
+----+-------------+-----------------+--------+-----------------+-------------+
5 rows in set (0.00 sec)
Обратите внимание, что 3 обогнавших 2 вызвать совпадение program_type_id и пол будет собирать 520 очков, а соответствие только school_type будет составлять всего 500 баллов. В этом случае 3 баллы выше 2 в очках.
Теперь, мой вопрос: есть ли у кого-нибудь идеи, как это сделать и как это можно сделать? Кстати, это MySQL 5.
Анализируя ответ, это может означать, что нам придется иметь дела заявление для каждой комбинации тоже. Например, program_type_id и пол будут иметь свой собственный case case. –
конечно да .. но не весь регистр дела, но только когда .... затем ... часть –