【发布时间】:2010-10-23 20:01:04
【问题描述】:
我的数据库中有记录通过用户输入进行搜索,最初,这足以找到正确的记录。
"SELECT id FROM plants WHERE Flower LIKE '%" . $sanitizedUserInput . "%'"
这一切都很好,但随后事情开始发生,例如,搜索“红色”会在其Flower 字段中按顺序找到带有字符“红色”的植物,而不仅仅是整个单词“红色” .
有人建议我在用户输入的两侧简单地放置一个空格,但我知道如果单词是字段中的第一个单词或最后一个单词,这将失败。我心想,我应该使用正则表达式!搜索两边有单词边界的单词。
不幸的是,我以前从未在数据库中使用过正则表达式。您如何构建查询以使用正则表达式搜索数据库?希望就这么简单:
"SELECT id FROM plants WHERE Flower REGEX `/\b" . $sanitizedUserInput . " \b/`"
【问题讨论】: