[英]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.