Я допустил ошибку сохранения приоритетов в виде списка, разделенного запятой, в столбце, а дальше его даже не был установлен правильный . У меня есть следующие данныеИсключить значения, разделенные запятыми, в базе данных
programs
HID
HID,IWREM
IWREM,ENVENG
ENVENG,HID
HID,ENVENG,IWREM
IWREM
Теперь то, что мне нужно, чтобы сделать его надлежащего разделенный запятыми список, с помощью собственно я имею в виду должны быть две запятые во всех значений (так как есть три программы), например, первое значение HID должна действительно по HID ,, а второй должен быть HID, IWREM,
Это необходимо, потому что я хочу, чтобы выполнить запрос, как это:
/* 2nd Priority Stats */
select
sum(case when program like '%,HID%' then 1 else 0 end) as `IWRM`,
sum(case when program like '%,IWRM%' then 1 else 0 end) as `IWRM`,
sum(case when program like '%,ENVENG%' then 1 else 0 end) as `ENVENG`
from table where degree = 'me';
Точно так же я хочу статистику для всех три приоритета.
У меня есть 3 программы, в которых учащиеся могут записаться в HID, IWREN, ENVENG. Они вл ютс абр. спрятал гидравлику, орошение & дренаж и т. д.
Схема очень простая студенческая таблица с идентификатором, именем, отчеством, программами, степенью и другими полями. Студент может выбрать одну программу, две или все три. Если выбрано более одного, он должен указать приоритеты. Текущий PHP-код только вставляет программы в виде списка с разделителями-запятыми, однако, если ученик выбирает только одну программу, список разделенных запятыми отсутствует, а для двух программ есть только два столбца вместо всех трех.
магазин значения в трех столбцах (или в соединительная таблица с тремя рядами). Не используйте странные строковые операции в SQL, когда правильная структура данных позволяет использовать правильные SQL-инструкции. –
Я бы не тратил времени на этот подход. очистить данные – Drew
- это новая система, которая имеет так много данных и инерции, что изменение сделало бы ее маловероятной? – Drew