好吧,我对 php 还比较陌生,目前,我完全迷失了!
我有一个页面,供用户比较最多三种产品,同时将他们的搜索保存到表("saved_results")
,以便我可以有一个部分,用于比如说,最近的搜索或类似的搜索等等......
发生的情况是,当用户比较多个产品时,它会从产品表 ("products")
中获取他们正在比较的产品 ID,并将其保存到新表 ( “compared_products”)
在数据库中的 compared_ids
字段中,使用逗号分隔格式(id1、id2、id3)。
如何进行查询以返回“saved_results”中至少两个逗号分隔字段相同的字段?
我假设我不能使用 LIKE 语句,我不认为它会起作用,因为如果我想找到有人比较产品 1 和 5 的行,它将返回任何行使用这些数字之一,包括 10、11、15、16...25、50、51、52...,因为 1 和/或 5 都在所有这些数字中!
最佳答案
我建议您对表结构进行一些更改。以错误的方式在表行中存储逗号分隔的值。
在特定时间为每个用户生成唯一的 compare_id
。
并使用以下结构恢复您的 compared_products
表 -
id
compare_id
product_id
...
...
因此,如果某个特定比较有 3 个产品进行比较,您将插入 3 行,而不是 1 行。
id compare_id product_id
1 33 52
2 33 37
3 33 11
这将帮助您轻松查询。
关于php - 查询表行与匹配的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23156104/