使用带有PDO和.MDB ACCESS的SELECT中的REPLACE进行搜索,使用PHP

时间:2017-07-10 07:15:12

标签: php pdo

我正在尝试编写一个与表中的名称匹配的mysql查询,并且数据库中的名称可以包含点或无点。因此,例如,我希望我的查询字符串fast与所有这些匹配:fastf.astf.a.s.t等。

我使用PHP,PDO连接到.MDB数据库。

我尝试了我在这里找到的东西,没有成功(我得到错误):

SELECT * FROM table WHERE replace(col_name, '.', '') LIKE "%fast%"

我认为MDB数据库的PDO缺少一些功能:(
有解决方案吗

2 个答案:

答案 0 :(得分:0)

除非您通过Access本身运行查询,否则无法运行replace()函数。但是,您有可能的替代方案,请尝试以下方法:

SELECT * FROM table
WHERE
       col_name  LIKE "%fast%"
    OR col_name  LIKE "%f[.]a[.]s[.]t%";

方括号定义了一个可选的.

或者在PHP级别执行:

str_replace('.','',$var);

答案 1 :(得分:0)

感谢Doug,我解决了:

$variable = implode("[.]", str_split($variable)) . "[.]";

SELECT * FROM table
WHERE
   col_name  LIKE "%" . $variable ."%";