根据搜索结果过滤特定列

Filter Specific Column Based on Search Results

我有一个搜索栏和一个从我的 sql 服务器数据库中填充的 HTML table。每当我搜索时,它都会在 SKUSKU Description 上使用 LIKE 命令来过滤 table。当显示结果时,我希望它根据最匹配 SKU 列的内容过滤结果。

例如,如果我搜索 "100",它将显示位于 SKUSKU Description 列的结果。但是,我希望它进行过滤,以便在 SKU Description 列中匹配的值之前先过滤 SKU 列中匹配的值。

我认为这只是向我的查询添加一些内容的问题,但我该怎么做呢?

这是我的查询:

$query = "SELECT Product_ID, [Major Category], [Minor Category], [Product Report Code], SKU, [SKU Description], [SKU Status], CAST([Create Date] AS DATE) AS Date, Group_ID, [SKU Group]
          FROM vProducts
          WHERE CONCAT(SKU, [SKU Description])
          LIKE '%".$valueToSearch."%'";

这可能有点矫枉过正,您必须将其格式化为您的“$query”。这是 sql.

SELECT A.Product_ID, A.[Major Category], A.[Minor Category], A.[Product Report Code], A.SKU, A.[SKU Description], A.[SKU Status], A.Date, A.Group_ID, A.[SKU Group], A.Sort
FROM (
        SELECT Product_ID, [Major Category], [Minor Category], [Product Report Code], SKU, [SKU Description], [SKU Status], CAST([Create Date] AS DATE) AS Date, Group_ID, [SKU Group], 1 AS Sort
        FROM vProducts
        WHERE SKU LIKE '%' + @value + '%'

        UNION all

        SELECT Product_ID, [Major Category], [Minor Category], [Product Report Code], SKU, [SKU Description], [SKU Status], CAST([Create Date] AS DATE) AS Date, Group_ID, [SKU Group], 2 AS Sort
        FROM vProducts
        WHERE [SKU Description] LIKE '%' + @value + '%'
    ) A
ORDER BY A.Sort