mysql - 使用 FIND_IN_SET 选择记录

标签 mysql select

我将复选框值作为逗号分隔值存储在数据库中

Features

1,3,4

1,2,3,4,5

3,4,5,6

现在,在搜索时,我需要根据用户选择复选框来选择记录,例如,如果用户选择 1 和 6 需要获取匹配的记录。我将选定的复选框值作为数组获取,如 (0=>1,1=>6)。我不知道如何像 FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)

那样循环遍历这个

它必须像

SELECT * FROM table WHERE FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)

最佳答案

$str='%';
foreach($array as $val)
{$str.=$val.'%';}

SELECT * FROM table WHERE Features like $str

更新:

$str='';
    foreach($array as $val)
    {$str.='or Feature like %'.$val.'%';}
$str[0]='';$str[1]='';

    SELECT * FROM table WHERE $str

关于mysql - 使用 FIND_IN_SET 选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11406655/

相关文章:

Delphi:取消选择 TreeView 中的选定项目

python - 在peewee中设置严格的sql模式

mysql - 从表中选择行加上与一个查询中所选行相关的行

mysql - 如何从表中获取最接近的日期值?输入参数为 2012-02-10

mysql - "Categorize"或 "Mark"选择查询

html - 选择外观在 Firefox (29) 和 Internet Explorer (11) 中无法正常工作

R - 如何根据包含要用于操作的列的名称的额外列对每一行的不同列进行操作

mysql - 错误 1072 MySQL

mysql - 在 mySQL 中的整个表中搜索字符串

java - JPA保存后MySQL日期更改为昨天的日期