В настоящее время я работаю над API, используя node.js
и node-mysql
.MySQL where if statement
я начинаю захватывая все параметры, которые клиент отсылает, как это:
var userId = req.query.userId;
var carType = req.query.carType;
var hasOwnership = req.query.hasOwnership; (optional parameter)
То, что я хотел бы сделать, это заявление так, что если клиент посылает параметр hasOwnership
с запросом, мое заявление вернет все автомобили, принадлежащие ему, с конкретным типом автомобиля. Подобно этому:
SELECT * FROM cars WHERE car_type=? AND owner_id=?, [carType, userId];
В противном случае это будет просто вернуть все автомобили, которые соответствуют типу автомобиля:
SELECT * FROM cars WHERE car_type=?, [carType];
Можно ли сделать что-то подобное в одном запросе?
Заранее благодарен!
Почему вы хотите это сделать? Когда у вас есть 2 запроса, база данных делает 2 разных плана для их эффективного выполнения. Если вы объедините их в одном запросе, это может ** **, что база данных не может планировать ее эффективное выполнение. –