Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL匹配逗号分隔字符串_Php_Sql_Mysqli - Fatal编程技术网

Php SQL匹配逗号分隔字符串

Php SQL匹配逗号分隔字符串,php,sql,mysqli,Php,Sql,Mysqli,我想知道如何在PHP/MySQL中执行以下select查询 MySQL字段称为'types',包含如下值:Provincie\、Gebied\、Water\或Water\、Plaats\ 然后在PHP中,我收到一个如下格式的字符串:$types='Plaats,Provincie,Gebied,Water' 我想做的是选择至少包含PHP数组中一个值的每一行 你有没有想过最好的方法 编辑 我不能向数据库中添加另一个表,尽管这是一个不错的选择 它不返回任何列,如下所示: $types = explo

我想知道如何在PHP/MySQL中执行以下select查询

MySQL字段称为
'types'
,包含如下值:
Provincie\、Gebied\、Water\
Water\、Plaats\

然后在PHP中,我收到一个如下格式的字符串:
$types='Plaats,Provincie,Gebied,Water'

我想做的是选择至少包含PHP数组中一个值的每一行

你有没有想过最好的方法

编辑 我不能向数据库中添加另一个表,尽管这是一个不错的选择

它不返回任何列,如下所示:

$types = explode(',', $types);
    $typesSQL = '';
    foreach($types as $type){
        $type = str_replace(' ', '', $type);
        $typesSQL .= "FIND_IN_SET('$type', types) OR ";
    }
    $typesSQL = substr($typesSQL, 0, -3);
SELECT * FROM ".$wpdb->prefix."ttr_results WHERE user_id = $user_id AND area = '$area' AND content = '$content' AND ($typesSQL) ORDER BY datetime DESC

您可以查看
find_in_set()。我也希望如此,但这不是这个项目的实际选择,无法添加新表。谢谢,我这样做了。但是FIND_IN_SET只使用一个字符串作为参数,事实上我想在字符串$types='Plaats,Provincie'Ah-yep中查找任何子字符串,起初没有看到您要检查多个值。在PHP中进行过滤是不可能的,因为对于大的结果集,您将有太多的处理要做。我认为更好的选择是@markbaker所建议的:如果你能做到的话,在一个专用的表格中提取你的类型。我确实看到了那个评论。但是在fortunalty上,我没有创建表的选项。编辑现有表将是一个选项,尽管我不认为这有什么帮助,因为要存储的类型数量不同。