У меня есть Express API, который получает параметры из моего приложения React.Есть несколько полей выбора, где они могут иметь несколько вариантов, в моем случае это бейсбольные сезоны.Доступны варианты 2018, 2017, 2016. Таким образом, пользователь может выбрать один или все из них одновременно.Это отправляется в мое приложение Express, где я использую соединение для них, чтобы создать одну строку параметров.Поэтому, если пользователь выбирает 2018 и 2016, строка «2018,2016» отправляется в мою хранимую процедуру MySQL.
Вот моя хранимая процедура:
CREATE DEFINER='mysqlAdmin'@'%' PROCEDURE 'testproc'(in playerID int(6), in seasons varchar(100))
BEGIN
select ReleaseSpeed, EventID, LaunchAngle from Pitches where BatterID=playerID and YEAR(GameDate) in (seasons) and LaunchAngle is not null order by ReleaseSpeed desc limit 5;
END
Вот звонок из моего приложения Express:
const sql = "call testproc(?,?);";
db.query(sql, [players[0],seasons], function(err, result, fields){
if(err) throw err;
console.log(result);
});
Проблема в том, что явызовите хранимую процедуру с параметрами, которые она получает только с тональностями, для которых выбраны даты в первом году, в данном случае 2018. Как получить строку, которая будет действовать как два отдельных целых числа, так что часть запроса IN
работаеткак задумано?