簡體   English   中英

將逗號分隔的值插入mysql數據庫PHP

[英]Insert Comma seperated values to a mysql database PHP

昨天我問了一個類似的問題,但是不一樣。 我有一些看起來像這樣的值,我想插入它們,以便

123,567,287,124,172,846,372,187

我希望它看起來像這樣

id=123 and SortNumber=1
id=567 and SortNumber=2
id=287 and SortNumber=3

我想基於此更新表,所以像這樣

UPDATE char_
SET SortNumber=1
WHERE id=123
Set SortNumber=2
WHERE id=567

現在,我想我可以做這樣的事情

$variable=123,567,287,124,172,846,372,187
$anothervariable=$variable = str_replace(",", "\r\n", $variable); 


$i=0;
$i++;

 mysqli_query(UPDATE char_ SET SortNumber=$i WHERE id=$anothervariable)

但是,我不確定代碼是否正確且為100,變量是否為全部內容,我不知道如何為每行設置不同的變量?

具有諷刺意味的是,您可以直接在MySQL中執行此操作

update char_
    set sortnumber = find_in_set(id, $variable)
    where find_in_set(id, $variable) > 0;

注意:這不會利用id上的索引,因此僅在char_很小(數十行或數百行)或您不關心性能的情況下才使用此索引。

建議您使用explode()foreach()

$variable = '123,567,287,124,172,846,372,187';
$columns = array_filter(explode(',', $variable));
foreach($columns as $key=>$val){
    $sql = "UPDATE char_ SET SortNumber = '".($key + 1)."' WHERE id = " . $val;
    $result = mysqli_query($con, $sql);
    //.....
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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