php - 查询表行与匹配的数字?

标签 php jquery mysql sql

好吧,我对 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/

相关文章:

javascript - JavaScript求和函数不起作用

php - 如果数据表类和记录是对象,那么连接呢?

PHP:如何从此 XML 获取关联数组?

javascript - 更改设备方向不会交换宽度和高度

mysql - 使用 REGEXP 将字符串变量添加到 MySQL SELECT 时是否需要添加引号?

php - Laravel通过pivot Table获取所有数据

jquery - html 鼠标悬停在事件上,无法显示对话框

javascript - 从另一个元素的事件(单击)取消事件触发(模糊)

php - 在 Groupwise MYSQL 中显示结果

mysql 查询 - 条件语句?