php - Mysql 根据列中的值限制结果

标签 php mysql

我试图限制基于另一个表列的查询结果的数量。例如,我有一个产品表和一个配置表,如下所示:

tb_product
id | active | name | value | ...

tb_config
max_product | ...

我想做的是这样的事情

SELECT 
    a.name, a.value 

FROM 
    tb_product a,
    tb_config b 

WHERE a.active = 1
LIMIT b.max_product

但我遇到了类似 #1327 - 未声明的变量:b 的错误。有没有办法达到这个结果?

因为目前我正在做的是执行另一个查询来获取 max_product 值,然后将其用作 php 变量来限制结果,如下所示:

$limit = "SELECT max_product FROM tb_config";
SELECT name, value FROM tb_product WHERE ativo = 1 LIMIT $limit

最佳答案

也许......

SELECT a.name
     , a.value 
FROM tb_product a
CROSS JOIN (SELECT @Limit:=(SELECT max_product from tb_config))
WHERE a.active = 1
LIMIT @Limit

关于php - Mysql 根据列中的值限制结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49797879/

相关文章:

php - 如何让执行 PHP 脚本的 Cronjob 运行时间超过 30 秒?

PHP exec() 导致行/列被剥离

java - Android MySQL + PHP + JSON

mysql - Rails - 按条件和限制排序?

php - Composer 自动加载 psr-4 未将命名空间添加到 autoload_psr4.php

php - 如何对mysql_real_escape_string进行SQL查询?

php/mysql 防止多列上的重复条目

php - 使用 mysql 和 PHP 为日历应用程序进行条件选择

java - HSQLDB:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象

MYSQL > 使用 nosteam 帐户在 int(11) 中插入 steam id,这似乎很长