我正在寻找一条建议SQL查询的建议。我有一个MySQL数据库,其中包含一个名为'sentences'的VARCHAR(255)字段。你可以猜到这个字段包含几个单词的句子。我想查询数据库以检索几个给定单词的任意组合,但没有任何其他单词。
以下是一个例子:假设我希望得到“做”,“你”,“喜欢”的所有组合, '的茶'。所以我想在结果中得到句子:'你喜欢茶','你喜欢',还是'喜欢茶 '或'做茶'但不是句子'你喜欢咖啡','你喜欢喝茶'
当然,我可以用PHP创建所有可能的单词组合,然后创建正确的SQL查询。但我正在寻找一种方法,只使用SQL运算符和给定的单词,而无需任何其他预处理。
非常感谢您的帮助。
答案 0 :(得分:0)
如果你想自动设置搜索'你喜欢'而'你喜欢喝茶吗?但不是'你喜欢咖啡吗?< / strong>,我认为这是不可能的,因为对于搜索引擎来说,它只是一串字符。除了长度(3对5)和字符集之外,它不知道'茶'和'咖啡'的区别
PS 要搜索多个字符串,请尝试使用fulltext
答案 1 :(得分:0)
使用时
WHERE (field LIKE '%do%%like%%tea%')
然后你给出的例子有效,但你依赖于给定的顺序,因此不会涵盖“像茶一样”的值。
我猜解决方案就是形成如下的查询:
WHERE (field LIKE '%do%') AND (field LIKE '%like') AND (field LIKE '%tea%')