Может ли кто-нибудь помочь мне с функцией обновления в Matlab для перемещения значений в MySQL?

#matlab

Вопрос:

Я имею дело с проблемой с функцией обновления в Matlab.

 conn=database('MySQL','user','password');)
selectquery_select = 'SELECT * FROM inputs WHERE i_read = 0';
data_select = select(conn,selectquery_select);
for j=1:size(data_select)
       id_data = data_select(j,1);
       id_data = string(id_data.(1));
       time_data = data_select(j,4);
       time_data = string(time_data.(1));
       time_dataform = datetime(time_data,'InputFormat','yyyy-MM-dd HH:mm:ss'); 
       y0=data_select(j,2);
       y0 = str2num(string(y0.(1))); 
       r0=data_select(j,3);
       r0 = str2num(string(r0.(1)));
       
       if id_data == "115"
           run("C:Users...uu.m")
           update(conn,'inputs','i_read',1,'WHERE (ID_code = "115") AND WHERE (i_Time = time_data)');
       end 
end
 

В принципе, я беру некоторое значение из базы данных, когда i_read равно 0 (i_read-это логическая переменная в базе данных, которая должна давать 1, если значение уже обработано, и 0, если нет). После считывания значения мы хотим изменить значение i_read в базе данных с 0 на 1. Мы решили использовать функцию обновления, но это привело к следующей ошибке:

 Error using database.odbc.connection/update
Too many input arguments.

Error in Patient_Identification (line 57)
           update(conn,'inputs','i_read',1,'WHERE (ID_code = "112") AND WHERE (i_Time = ', time_data,')');
 

Кто — нибудь может помочь нам с этой проблемой? Спасибо.

Комментарии:

1. Вы передаете свое предложение where в качестве нескольких аргументов. Сделайте это одной строкой, а затем передайте ее. Попробуйте создать переменную whereclause , которая поможет вам изолировать эту проблему.

2. Мы попытались создать переменную whereclause, например whereclause=[‘ГДЕ (ID_code = «112») И ГДЕ (i_Time=’, time_data,’)’]. Но код выдает нам эту ошибку: Ошибка при использовании database.odbc.подключение/обновление (строка 301) Ошибка драйвера ODBC: [Microsoft][Диспетчер драйверов ODBC] Ошибка нелла секвенца делла фунционе. Ошибка в обновлении Patient_Identification (строка 59) (продолжение,»входы»,»i_read»,1,где указано);

3. может быть, это глупый вопрос, но установили ли вы драйвер ODBC ?

4. также заметил , что вы закрываете свою строку после того i_Time = , как сделаете ее недействительной, как указал Л. Скотт

5. Я решил эту проблему, спасибо