如何从SELECT语句中获取LEAST()值?

时间:2015-12-19 07:42:44

标签: php mysql

这是我的疑问:

"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

显然我不能在其中使用带有SELECT语句的LEAST()。

3 个答案:

答案 0 :(得分:3)

在MySQL中,LEAST()期待许多参数,并返回其中最小的参数。

你得到的SELECT是一个结果集,因此我认为你正在寻找MIN()。用这个交换你的LEAST(),这应该可以解决问题。

答案 1 :(得分:1)

不是mysql的专家,但您可以使用此代码来解决此问题 SELECT Least(valor_total) FROM tbl_pedidos_cotacaos_produtos WHERE produto_id = ".$produto->itens[$t]->pedido_id. "而是在select命令上使用显式最小函数:)

答案 2 :(得分:1)

使用MIN()功能查找多行的最小值。

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