选择从第一个开始而不是从mysql开始的地方

时间:2018-07-30 15:02:56

标签: php mysql

我只是想用前缀来做研究。

例如。当我搜索10542时,110542不应该在那里,而只有105428001

字符串:

110542004
105428001 

我尝试过

LEFT(INV.INV_CD,5) LIKE '%".$option3."%'";

SUBSTRING(INV.INV_CD,1,5) LIKE '%".$option3."%'";

两个结果都相同。

2 个答案:

答案 0 :(得分:1)

问题是您的LIKE语法:

LIKE '%".$option3."%'";

使用%意味着可以在同一位置放东西,因此LIKE '%".$option3."%'";可以返回XXXX + $option3 + XXXX的值(其中XXXX等于零或多个字符)

如果只想$option3 + XXXX,只需写LIKE '".$option3."%'";

这是documentation

  

使用LIKE,您可以在模式中使用以下两个通配符:

     

%匹配任意数量的字符,甚至零个字符。

     

_恰好匹配一个字符。

答案 1 :(得分:1)

在like子句中有%时,它允许任何字符,因此开头的一个字符允许它在任何地方开始。删除它以开始...

INV.INV_CD LIKE '".$option3."%'";

注意:您还应该尝试使用准备好的语句,因为它们将来可能会阻止很多问题!

相关问题