如何解决LIKE表达式中的MySQL连字号
| 我正在使用旧版PHP框架,并且遇到了一些我无法追踪的奇怪行为。 我正在运行一个看起来像这样的查询select * from table where column like \'%word-anotherword%\'
,我想从表中返回记录,其中列包含文本“ word-anotherword \”。 (列是一个长文本字段)。
当我在phpMyAdmin中运行此查询时,得到了预期的结果。但是,当我从我们的框架内部运行它时,没有任何结果。我已经在一个单独的.php文件中运行它,使用mysql_link
,mysql_query
运行查询,它的行为也与预期的一样。
当我在传递给mysql_query
之前立即在框架中echo
查询时,其格式与我期望的相同。即我们的框架并没有以某种意外的方式逃避它。
我以为我们的框架正在某个地方重写某些PHP设置来导致这种行为上的差异,但是我没有运气来搜索它的可能。我找到了这篇文章,这似乎是一个不错的开始,但似乎也不太符合我所看到的,因为我在同一MySQL设置上遇到了不同的行为。
任何朝着正确方向的指针将不胜感激!
解决方法
作为调试提示:
当您在查询中输入“ 3”时,可能要确保自己确实在查看数据-例如如果您要在网页上输入“ 3”,请确保对字符串应用了“ 7”。否则,您可能不会发现某些更改。
, LIKE不是全文搜索,这就是问题标题错误的原因,并且可能是您发现的该文章与您的问题无关。
关于您的问题,请打开my.cnf并启用查询日志:
[mysqld]
#Set General Log
log = \"C:/all_queries.log\"
现在运行查询并查看日志。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。