[英]Select from table where field data 'like' variable
該腳本可以正常運行,但不符合預期。
$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按原始順序)。
但是,如果$value
是A,D或不同順序,它根本不會給出結果。
如果$value
不是原始順序,如何使此腳本工作?
您可以拆分$value
並為每個單獨的值創建一個與AND
的自定義whereRaw
。 我還建議您檢查以保存方式存儲數據是否有意義,尤其是如果您現在要進行的查詢是您計划經常進行的查詢。 可能存在更有效的存儲方式。
$values = explode(', ', $value);
$query = "";
foreach($values as $param) {
$query .= $field.' LIKE %'.$param.' AND'
}
$query = rtrim($query, " AND");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.