Php SQL匹配逗号分隔字符串
我想知道如何在PHP/MySQL中执行以下select查询 MySQL字段称为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
'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上,我没有创建表的选项。编辑现有表将是一个选项,尽管我不认为这有什么帮助,因为要存储的类型数量不同。