簡體   English   中英

從表中選擇字段數據“ like”變量

[英]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按原始順序)。

但是,如果$valueA,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM