Как это сделать без вложенных запросов (если это реально конечно)?
если такой id есть, то ничего не выводить.
$newPrice = (1 + $percentage / 100) * $price;
там цены не готовые, я сначала вытаскиваю товар с нынешней ценой, и через формулу создаю новую цену ($newPrice) потом внутри цикла меняю цену.
полное избавление от суррогатного ключа в мускуле не бывает, движок вроде сам создает внутренний "невидимый" ключ и работает с ним.
К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".
Пробовал гуглить, как указывать тип, ничего не нашёл.
сразу бросаются хранение типов и статусов в строках, переделай в числа, должно заметно уменьшить базы данных, уменьшить объем базы и индексов.
лучше всего enum
Скорость выполнения одинаковая
WHERE (task.status, task.type, task.provider, task.cat) = ('active', 'follow_profile', 'insta', 3)
Серверу пофиг, но как бы нагляднее.
Некоторые СУБД имеют соответствующие синтаксические операторы. Но в большинстве случаев задача решается условной агрегацией с применением динамического SQL. Поэтому указание точной СУБД, включая точную версию - критически важно.