簡體   English   中英

根據條件更新MySQL記錄

[英]Updating MySQL records based on condition

數據庫包含:

sku     price   available
0113A5  300     1
0213A5  250     1

PHP偽代碼:

['0113A5' => ... , '0313A5' => ... ]

loop:
    if exists in DB ['0113A5']:
        update 
    if not exists in DB ['0113A5']:
        create

delete all other records in the table (in this case 0213A5 which isn't in the array)

我可以使用以下命令INSERT (更新)記錄:

INSERT INTO product (sku, price, available)
VALUES ('{$sku_safe}', '{$price}', '{$available}')
ON DUPLICATE KEY UPDATE 
    price = VALUES(price),
    available = VALUES(available)

..但我不確定如何從表中刪除不匹配的記錄。

1.方法1:為此,您必須首先獲取表中存在的所有記錄的記錄集,然后對照您的數組檢查每個記錄集,以了解是否需要顯示它們。

2.方法2:將數組中存在的skus放入表中(說ValidLookupHelper),然后運行帶有NOT IN的MySql查詢,該NOT IN在原始數據表中找到,但不在ValidLookupHelper中。

暫無
暫無

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

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