2015-12-19 4 views
0

Вот мой запрос:Как получить значение LEAST() из инструкции SELECT?

"UPDATE tbl_pedidos_cotacaos_produtos tb1 LEFT JOIN 
tbl_pedidos_produtos tb2 ON tb1.produto_id = tb2.id SET 
tb1.status = CASE WHEN tb1.valor_total = 
SELECT LEAST(SELECT valor_total FROM tbl_pedidos_cotacaos_produtos WHERE 
produto_id = ".$produto->itens[$t]->pedido_id.") THEN 5 ELSE 4 WHERE pedido_id = ".$produto->itens[$t]->pedido_id 

Ошибка:

[19-Dec-2015 05:37:48 America/Sao_Paulo] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT LEAST(SELECT valor_total FROM tbl_pedidos_cotacaos_produtos WHERE produto' at line 1 

Видимо, я не могу использовать МЕРЕ() с ЗЕЬЕСТОМ внутри него.

+0

Вы пробовали MIN() – devpro

ответ

3

В MySQL LEAST() ожидает ряд аргументов, и возвращает наименьший один из них.

То, что вы получаете с помощью своего SELECT, - это, однако, результат, и поэтому я думаю, что вы ищете MIN(). Поменяйте свой МЕНЬШЕ() с этим, и он должен сделать трюк.

1

Не специалист в MySQL, но вы можете использовать этот код, чтобы решить эту SELECT Least(valor_total) FROM tbl_pedidos_cotacaos_produtos WHERE produto_id = ".$produto->itens[$t]->pedido_id. " вместо явного Наименьшее функции на избранной команде :)

1

Используйте функцию MIN() найти наименьшее значение через несколько строк.

... total = (SELECT MIN(valor_total) FROM ...)

Смежные вопросы