gpt4 book ai didi

php - MySQL 搜索查询类似

转载 作者:行者123 更新时间:2023-11-29 03:11:59 26 4
gpt4 key购买 nike

我有几个文本字段的数据库表,我用它来过滤数据,每个文本字段都包含用冒号分隔的数字数据(例如“1:2:4:5:6:7:9”)

id   |  title         |  field1                 | filed2     | field3            |
1 | Some title1 |1:2:3:4:5:6:7 |1:2:3:6:7 | 1:2:4:5:7:9:10:11 |
2 | Some title2 |1:2:3:4:5:6:7:8:9:10:11 |1:2:3:4:5:6 | 1:2:4:5:7:9:10:11 |
3 | Some title3 |1:2:3:4:5:6:7 |1:2:3:6:9 | 1:2:4:5:7:9:10:11 |
4 | Some title4 |3:4:5:6:7:10:11 |1:2:3:10:11 | 1:2:4:5:7:9:10:11 |
5 | Some title5 |1:2:3:4:5:6:7 |1:2:3:6:7 | 1:2:4:5:7:8:9:11 |
6 | Some title6 |2:3:4:5:6:7:9 |1:2:3:6:7 | 1:2:4:5:7:9 |

使用搜索表单,我为 field1、field2 和 field3 的每个参数使用复选框,并使用 php foreach 为每个字段创建 LIKE '%parameter%'

我的 SQL 查询看起来像 SELECT * FROM table WHERE (field1 LIKE '%1%' OR field LIKE '%2%') AND (field2 LIKE '%1%' OR field2 LIKE '%2%')

不幸的是,这个查询没有给我很好的结果,因为我得到的行与我的想法不符:)

例如,如果用户选择了复选框值 1、2、3、4、5、6、7查询只需要返回第 1、3、5 行

是否有更好的解决方案来过滤此结果

问候

附加信息:

让我尝试向您解释更多的想法
用户检查具有某些值(即 1、3、4、5、6、7)的复选框脚本需要仅返回包含这些值的结果在 field1 中,当用户选中控制 field2 和 field3 的其他复选框时会发生同样的事情,但现在这并不重要

附加信息 pt2.

我会尽力给大家更好的解释我想要实现的目标

我有带有复选框和单选输入字段的搜索表单,每个复选框组(值从 1 到 10)代表表中的列(field1、field2、field3),例如,列 field1 中的每个值代表选定的复选框(它们是在管理面板中为每一行设置)现在默认情况下所有复选框都被选中,当用户取消选择相应的复选框结果需要根据过滤器过滤行时,我现在得到所有结果很好的例子我试图实现的是http://www.hotelscombined.com/City/London.htm

因此,如果取消选中值为 2 的复选框,则它不能列在结果中

BR思乐

最佳答案

我认为问题在于 %1% 不仅匹配 1 而且还匹配 10, 11,等

最好这样做:

WHERE CONCAT(':', field1, ':') LIKE '%:1:%'

关于php - MySQL 搜索查询类似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com