【发布时间】:2013-12-12 18:14:58
【问题描述】:
我正在建立一个具有可搜索产品数据库的网站。为了简单起见,我的表有三列:
- 身份证
- img(对产品图片的引用)
- 标签(varchar 255,用于搜索的标签列表,例如“chair wood brown”)
我有疑问:
$query = "SELECT `img` FROM `products` WHERE `tags` LIKE '%$q%'";
这完全符合我的要求,唯一的问题是,如果标签按搜索顺序排列,它只会选择行。例如,如果有 3 行:
- 第 1 行带有标签“黑色托盘”
- 第 2 行带有标签“黑色托盘”
- 第 3 行带有标签“黑色托盘层”
而您搜索“黑色托盘”,第 1 行和第 3 行都会显示,但不会显示第 2 行。
我正在尝试显示所有三行,无论单词的顺序如何。例如,如果您搜索“黑色托盘”,我希望它们全部显示,但如果您搜索“托盘层”,则只会显示第 3 行。也许这需要重新考虑原始查询,我不确定。
非常感谢!
【问题讨论】:
-
啊哈,正则表达式的黑暗艺术