【发布时间】:2009-02-18 21:01:51
【问题描述】:
我想将输入字符串与我的 PHP 页面进行匹配,就像 SQL (MySQL) 中的 LIKE 命令完成的匹配一样,以保持其他搜索的一致性。由于(我见过但不理解)一些 PHP 语法包括 SQL 命令,我想知道这是否可能?
这样做的原因是我现在正在搜索关键字与数据库中存储在序列化数组中的字段,我必须在 PHP 中取消序列化并根据数组的结构进行搜索。我不能对表进行查询,只需要查询的匹配能力。否则我需要找到一个替代的匹配例程,这将是不一致的。我不能回去重新构建数据库,因为这在规范中没有预料到。是的,我需要一个丑陋的 hack,但我正在寻找最优雅的。
如果不可能,我可以使用任何将用户键入的文本作为关键字与存储文本匹配的建议。
编辑(澄清):我的主要问题是我没有彻底掌握 LIKE 命令的工作原理(只是复制代码),并且由于关键字暗示某种程度的模糊性,我希望保留这种模糊性,如果我切换到正则表达式。我对正则表达式更好,只是对喜欢不太好。我的查询是“LIKE 'matchme%'”
【问题讨论】:
-
从用户的角度看查询如何?是否允许他们输入通配符,例如“%”,还是只能输入纯文本?
-
用户提供文本,我在幕后添加通配符。我确实使用了 1%。喜欢'文本%'
-
老兄 - LIKE 是确定性的。这是字符串搜索。在数据库中进行。
-
Matt,它作为序列化数组存储在数据库中。我不知道为什么,但它就在他的文字中。
-
OIS:是的,我现在明白了。我的错。谢谢!
标签: php sql pattern-matching full-text-search sql-like