簡體   English   中英

用於根據Another Columns值設置新列值的MySQL腳本

[英]MySQL Script to SET new Column Values Based on Another Columns value

我有一個現有數據庫和一個現有的表,在該表中我有一個名為“packageno”的列,它代表包號。 我有超過400行的數據庫內容。 每個唯一行都有一個包號。 但是現在,我添加了一個名為“packagedescription”的列,它代表包描述。 現在新列是空的。 但是我有一個關於PHP代碼中包描述的圖例,例如:

if ($packageno == 1) {
 $description = 'Interior Rooms';
 }
if (packageno == 2) { 
 $description = 'Exterior Rooms';
 }

等等....

但是從一開始,我就沒有添加描述。 相反,我添加了包裹號碼。

所以,我想要做的是更新或設置packagedescription列中的空數據庫字段,以及包的實際描述。 如何使用packageno編寫MySQL腳本以輸入所有現有行的描述?

我知道一點MySQL,但我從來沒有對現有的行做過這樣的事情。

任何幫助,將不勝感激!

您也可以在一個查詢中執行此操作:

UPDATE `table_name` SET packagedescription = 
    IF(packageno = 1, 'Interior Rooms',
    IF(packageno = 2, 'Exterior Rooms',
    IF(packageno = 3, 'Some Rooms',
    IF(packageno = 4, 'Other Rooms',
    IF(packageno = 5, 'Outdoor Rooms',
    IF(packageno = 6, 'Indoor Rooms',
    IF(packageno = 7, 'Commercial Rooms',
    IF(packageno = 8, 'Residential Rooms',
    IF(packageno = 9, 'Industrial Rooms',
    IF(packageno = 10, 'Kitchen Rooms',
    IF(packageno = 11, 'Office Rooms',
    IF(packageno = 12, 'Bedrooms', NULL))))))))))))

您還可以創建PackageNumberDescription表並從中執行更新,如下所示:

PackageNo  PackageDescription
---------  ------------------
1          Interior Rooms
2          Exterior Rooms

UPDATE packages p JOIN PackageNumberDescription d on p.packageno = d.packageno SET p.packagedescription = d.packagedescription

如果您有少量ID,您可以執行以下操作:

UPDATE package SET description = 'Interior Rooms' WHERE packageNo = 1;
UPDATE package SET description = 'Exterior Rooms' WHERE packageNo = 2;

如果你有數百或數千,可能會有點煩人。

或者,不是重復描述,而是可以有一個單獨的表,其中包含描述和鏈接。

PackageID    Description
---------    --------------
1            Interior Rooms
2            Exterior Rooms

然后,您可以更改您的選擇以包括其他表:

SELECT * FROM package p INNER JOIN packageRooms pr ON p.packageID = pr.packageID

update查詢將是

UPDATE table_name SET packagedescription = 'Interior Rooms' 
WHERE packageno = 1

UPDATE table_name SET packagedescription = 'Exterior Rooms' 
WHERE packageno = 2

其他人也一樣......

暫無
暫無

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

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