Я пытаюсь обновить таблицу базы данных mysql. Итак, я разработал объект ORM, который помогает мне уменьшить объем запроса на обновление с помощью UPDATE, WHERE Условия
Прежде всего, я создал переменную ORM, как этоORM Object - это отфильтрованные данные из фрейма данных с использованием условия в другом pd.data_frame
CSV. Это мое простое правило, так как легко создавать такие условия:
myOutlook_inBox = pd.read_csv (r'' + mydir + 'test.CSV', usecols=
['Subject','Body', 'From: (Name)', 'To: (Name)' ], encoding='latin-1')
это простые ORM-данные, извлеченные из * 1007.*
replaced_sbj_value = myOutlook_inBox['Subject']
.str.extract(pat='(L(?:DEL|CAI|SIN).\d{5})').dropna()
, и этот ORM извлекает csv.column
из myOutlook_inBox['Subject']
replaced_sbj_value = myOutlook_inBox['Subject']
.str.extract(pat='(L(?:DEL|CAI|SIN).\d{5})').dropna()
myOutlook_inBox["Subject"] = replaced_sbj_value
, и это условие, которое я использую для фильтрации определенных данных
frm_mwfy_to_te = myOutlook_inBox.loc[myOutlook_inBox['From:
(Name)'].str.contains("mowafy", na=False)
& myOutlook_inBox['To:(Name)'].str.contains("te",
na=False)].drop_duplicates(keep=False)
frm_mwfy_to_te.Subject
и эта переменная фильтрует строки в базе данных mysql в столбце с именем Subject
filtered_data = all_data
.loc[all_data.site_code.str.contains('|'.join(frm_mwfy_to_te.Subject))]
, и это мой sql-запрос, все, что мне сейчас нужно, - это создание запроса, который обновляет столбец под названием «ожидающие» фильтры.в столбце с именем "site_code" и обновите строки, значение которых содержит filtered_data
, чтобы обновить или заменить значения в столбце pending
значением TE
update_db_query = engine.execute("UPDATE govtracker SET pending = 'TE'
WHERE site_code = " + filtered_data)
Я думаю, яПринимая во внимание, что я нахожусь в неправильном сценарии. Любые идеи для решения этой проблемы
Примечание: мне не нужно упоминать старое значение в моем запросе. Я просто хочу обновить значение в той же строке в соответствии с отфильтрованным фреймом данныхпо новому значению, которое я упомянул в запросе
Например, согласно frm_mwfy_to_te.Subject
, поскольку Subject - это имя столбца, вызываемое в CSV-файле
Позволяет сказать, что выходные данные этого ORM frm_mwfy_to_te.Subject
Subject
LCAIN20804
LDELE30434
LSINI20260
Теперь предположим, что это вывод моего ORM, тогда я буду использовать этот ORM для фильтрации и получения строки этих трех значений из базы данных MySQL, так как для обновления каждая строка содержит эти значения, и я хочу обновитьстолбцы с именами Pending
и pending status
в моем sql
, и это мой запрос к базе данных
CREATE TABLE `mydb`.`govtracker` (
`id` INT,
`site_name` VARCHAR(255),
`region` VARCHAR(255),
`site_type` VARCHAR(255),
`site_code` VARCHAR(255),
`tac_name` VARCHAR(255),
`dt_readiness` DATE,
`rfs` VARCHAR(255),
`rfs_date` DATE,
`huawei_1st_submission_date` DATE,
`te_1st_submission_date` DATE,
`huawei_2nd_submission_date` DATE,
`te_2nd_submission_date` DATE,
`huawei_3rd_submission_date` DATE,
`te_3rd_submission_date` DATE,
`acceptance_date_opt` DATE,
`acceptance_date_plan` DATE,
`signed_sites` VARCHAR(255),
`as_built_date` DATE,
`as_built_status` VARCHAR(255),
`date_dt` DATE,
`dt_status` VARCHAR(255),
`shr_status` VARCHAR(255),
`dt_planned` INT(255),
`integeration_status` VARCHAR(255),
`comments_snags` LONGTEXT,
`cluster_name` LONGTEXT,
`type_standalone_colocated` VARCHAR(255),
`installed_type_standalone_colocated` VARCHAR(255),
`status` VARCHAR(255),
`pending` VARCHAR(255),
`pending_status` LONGTEXT,
`problematic_details` LONGTEXT,
`ets_tac` INT(255),
`region_r` VARCHAR(255),
`sf6_signed_date` DATE,
`sf6_signed_comment` LONGTEXT,
`comment_history` LONGTEXT,
`on_air_owner` VARCHAR(255),
`pp_owner` VARCHAR(255),
`report_comment` LONGTEXT,
`hu_opt_area_owner` VARCHAR(255),
`planning_owner` VARCHAR(255),
`po_number` VARCHAR(255),
`trigger_date` DATE,
`as_built_status_tr` VARCHAR(255)
) ENGINE = InnoDB;
Еще одно важное замечание: в Excel, когда я использую фильтр в каком-то столбце, он показывает всеЗначения в выбранном столбце, скажем, Pending
- это выбранный столбец, который имеет значения Accepted & PAC in progress
Planning
TE
PP
DT
FM
Rollout
Integration
Opt Team
Так что теперьвсе остальные столбцы имеют значение valи так далее. Поэтому мне нужно создать таблицу, например, columns_values
и заполнить эту таблицу всеми этими значениями, которые у меня есть, так как эти значения являются статическими значениями. Это легко для решения моего случая
Последнее примечание:Эта база данных соответствует существующему файлу xlsm, но я перемещаю данные из xlsm в mysql, и теперь mysql Является ли моя основная база данных не форматами Excel, но я обновляю базу данных mysql через файл csv, а не в моей базе данных, объект orm frm_mwfy_to_te.Subject
извлеченные данные из фрейма данных в CSV-файле
Есть идеи?
Я надеюсь, что все достаточно ясно