从表中选择字段数据'like'变量

时间:2016-07-19 14:46:33

标签: php laravel

脚本运行正常,但不如预期。

$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不是原始顺序,如何使此脚本生效?

1 个答案:

答案 0 :(得分:1)

您可以拆分$value并为每个值创建一个whereRaw个自定义AND。我还建议您检查以保存方式存储数据是否有意义,特别是如果您现在正在进行的查询是您计划经常进行的查询。可能有更有效的方法来存储它。

$values = explode(', ', $value);
$query = "";
foreach($values as $param) {
    $query .= $field.' LIKE %'.$param.' AND' 
}
$query = rtrim($query, " AND");