Php 在查询中使用LIKE子句

Php 在查询中使用LIKE子句,php,mysql,dynamic,sql-like,Php,Mysql,Dynamic,Sql Like,我正在尝试编写一个动态查询,从几个下拉列表中获取信息。 在下拉列表中有一个名为ANY的选项,我给它赋值%,这样当它被选中时,它就不会影响查询选择 这是我的疑问: $query_pag_data = " SELECT * FROM forecast WHERE QuoteCode IN (SELECT QuoteCode FROM `StockData` WHERE AssetType LIKE '$sec' AND region LIKE '$indus

我正在尝试编写一个动态查询,从几个下拉列表中获取信息。 在下拉列表中有一个名为
ANY
的选项,我给它赋值
%
,这样当它被选中时,它就不会影响查询选择

这是我的疑问:

$query_pag_data = "
SELECT *
FROM forecast
WHERE QuoteCode IN
    (SELECT QuoteCode
     FROM `StockData`
     WHERE AssetType LIKE '$sec'
       AND region LIKE '$indust'
       AND exchange LIKE '$exchange'
       AND Country LIKE '$cntry')
  AND RANKING LIKE '$sig_m_t'
  AND RANKINGw '$sig_l_t'
  AND NewSigD LIKE '$new_m'
  AND NewSigW LIKE '$new_l'
ORDER BY SCORE DESC LIMIT $start,
                          $per_page
";

我想知道,如果我在变量中传递
%
,它是否有效?

在这些情况下,我要做的是:

$query_pag_data = "
SELECT *
FROM forecast
WHERE QuoteCode IN
(SELECT QuoteCode
FROM `StockData`
WHERE AssetType LIKE '%$sec%'
AND region LIKE '%$indust%'
AND exchange LIKE '%$exchange%'
AND Country LIKE '%$cntry%'
AND RANKING LIKE '%$sig_m_t%'
AND RANKINGw '%$sig_l_t%'
AND NewSigD LIKE '%$new_m%'
AND NewSigW LIKE '%$new_l%'
ORDER BY SCORE DESC LIMIT $start,$per_page";

当然它会工作,因为在您将查询传递给sql server之前,它是可编辑的。但是您也可以发布php代码吗?可能您忘记了搜索字符串中的%-符号。使用“”“您不必连接,php处理字符串并替换变量;)我不确定应该删除什么来优化代码,请让我知道应该删除哪些字符。我相信代码应该以任何一种方式工作。是的,代码可以工作,但“LIKE“%$new_m.%”比“%$new_m.%”快。很高兴知道,“LIKE“%$new_m.%”是变量后面的。是否需要输入错误?这是输入错误。抱歉^^