我有一个问题,也许我做了错误的方式,因为我已经创建了两个不同的搜索功能,他们有自己不同的功能搜索,一个是sku和一个是日期
我已经为mysql和workbench创建了一个代码,它在我使用的时候运行良好
SELECT
settlement_id, sku
FROM
settlements
WHERE
sku LIKE 'ISCE%'
AND settlement_id LIKE '7072432852'
GROUP BY sku
HAVING sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY sku
它显示的很好
我对php页面使用相同的函数
$output = '';
if (isset($_POST["query"])) {
$search = mysqli_real_escape_string($conn, $_POST["query"]);
$queryskulist = "
SELECT
settlement_id,
sku,
FROM settlements
WHERE sku LIKE '%" . $search . "%' and settlement_id LIKE '%" . $search . "%'
GROUP BY sku
HAVING sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY sku
";
} else {
$queryskulist = "
SELECT
settlement_id,
sku,
FROM settlements
GROUP BY sku
HAVING sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY sku ";
}
如你所见
WHERE sku LIKE '%" . $search . "%' and settlement_id LIKE '%" . $search . "%'
这就是我得到一个错误的地方,因为我只能从这样一个函数中获取数据
WHERE sku LIKE '%" . $search . "%'
但是我无法得到两个不同的搜索结果,我应该使用两个不同的查询$\u post[“query”]?
任何建议都将是伟大的,或者样本/示例演示php网站将是伟大的,它将帮助我一个大局在它。
3条答案
按热度按时间pdtvr36n1#
感谢更新,我已经修复了这个问题,因为我已经决定删除'sku'并保留它的其余部分,所以这里是发生了什么。
“consolution\u id”是php页面上的一个选项下拉值,他们从mysql中提取数据,在输入框中使用“sku”搜索框。输入框使用javascript ajax过滤器从“结算id”数据中获取显示结果的数据
这是一个演示http://amazonsettlement.ishka.ie/multiselect/
dwbf0jvd2#
事实上你没有聚合函数你应该用在哪里
sql中不推荐使用group by WITH aggreagtion函数。。在mysql的最新版本中是不允许的((默认情况下)
使用groupby而不使用聚合函数,可能会得到不可预知的结果
jdgnovmf3#
您可以使用以下方法解决此问题
或者,您应该能够用括号括起来