我正在尝试编写一个与表中的名称匹配的mysql查询,并且数据库中的名称可以包含点或无点。因此,例如,我希望我的查询字符串fast
与所有这些匹配:fast
,f.ast
,f.a.s.t
等。
我使用PHP,PDO连接到.MDB数据库。
我尝试了我在这里找到的东西,没有成功(我得到错误):
SELECT * FROM table WHERE replace(col_name, '.', '') LIKE "%fast%"
我认为MDB数据库的PDO缺少一些功能:(
有解决方案吗
答案 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 ."%";