脚本运行正常,但不如预期。
$table = $_POST['table'];
$field = $_POST['field'];
$condition = $_POST['condition'];
$value = $_POST['value'];
if ($condition == 'Contains') { $newcondition = 'like'; }
$builder = DB::table($table)->where($field, $newcondition, '%'.$value.'%')->get();
例如,我的字段数据如下所示: A,B,C,D
如果$value
的顺序相同,则会给出正确的结果: A,B (如果值是原始顺序)。
但如果$value
A,D 或者顺序不同,它根本不会给出结果。
如果$value
不是原始顺序,如何使此脚本生效?
答案 0 :(得分:1)
您可以拆分$value
并为每个值创建一个whereRaw
个自定义AND
。我还建议您检查以保存方式存储数据是否有意义,特别是如果您现在正在进行的查询是您计划经常进行的查询。可能有更有效的方法来存储它。
$values = explode(', ', $value);
$query = "";
foreach($values as $param) {
$query .= $field.' LIKE %'.$param.' AND'
}
$query = rtrim($query, " AND");