php用两种不同的函数获取数据

k4ymrczo  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(303)

我有一个问题,也许我做了错误的方式,因为我已经创建了两个不同的搜索功能,他们有自己不同的功能搜索,一个是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网站将是伟大的,它将帮助我一个大局在它。

pdtvr36n

pdtvr36n1#

感谢更新,我已经修复了这个问题,因为我已经决定删除'sku'并保留它的其余部分,所以这里是发生了什么。
“consolution\u id”是php页面上的一个选项下拉值,他们从mysql中提取数据,在输入框中使用“sku”搜索框。输入框使用javascript ajax过滤器从“结算id”数据中获取显示结果的数据
这是一个演示http://amazonsettlement.ishka.ie/multiselect/

dwbf0jvd

dwbf0jvd2#

事实上你没有聚合函数你应该用在哪里

SELECT 
    settlement_id
    , sku
FROM  settlements
WHERE sku LIKE 'ISCE%' 
        AND settlement_id LIKE '7072432852'

WHERE sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY sku

sql中不推荐使用group by WITH aggreagtion函数。。在mysql的最新版本中是不允许的((默认情况下)
使用groupby而不使用聚合函数,可能会得到不可预知的结果

jdgnovmf

jdgnovmf3#

您可以使用以下方法解决此问题

SELECT
    settlement_id,
    sku
FROM
    settlements
WHERE
    (CONCAT(sku, settlement_id) LIKE '%" . $search . "%')
AND
    sku IS NOT NULL AND LENGTH(sku) > 0
ORDER BY
    sku

或者,您应该能够用括号括起来

WHERE (sku LIKE '%" . $search . "%') OR (settlement_id LIKE '%" . $search . "%')

相关问题