[英]Update query in mysql for new column
民間
我有一張桌子,如下
我們假設在countryname列之后添加一個新列,即parent_country,結果應如下所示
id parentid countryname Parent_country
39 0 Barbados Barbados
40 39 Barbados mobile Barbados
41 39 Mobile Digicel Barbados
42 0 Anguilla Anguilla
43 42 Anguilla Mobile Anguilla
44 42 hello Mobile Digicel Anguilla
謝謝
我不認為您應該添加一列。 您正在打破規范化的基本規則之一。 這是一個查詢,可為您提供所需的結果。
SELECT tbl.id as id
, tbl.parentid as parentid
, tbl.countryname as countryname
, COALESCE(parent.countryname, tbl.countryname) as Parent_country
FROM tbl
LEFT JOIN tbl AS parent
ON tbl.parentid = parent.id
而且它很容易變成一個視圖(雖然不可更新),該視圖可以模仿表進行讀取
CREATE VIEW tbl_trick_business_team AS
SELECT tbl.id as id
, tbl.parentid as parentid
, tbl.countryname as countryname
, COALESCE(parent.countryname, tbl.countryname) as Parent_country
FROM tbl
LEFT JOIN tbl AS parent
ON tbl.parentid = parent.id
不會添加列,因為可以通過自拍連接獲取數據,並且會破壞規范化-您將在數據庫中使用更多空間。 但是,在某些情況下,提高速度可能會有所幫助。
但是如果需要的話,我們開始
ALTER TABLE tablename ADD COLUMN p_name(text);
UPDATE tablename
INNER JOIN
(SELECT id,
parentid,
country_name
FROM tablename)a ON tablename.parent_id=a.id
SET tablename.p_name=a.country_name;
您需要將id傳遞給$id
變量,然后編寫查詢
UPDATE tablename SET Parent_country='Barbados' WHERE id='".$id."' LIMIT 1"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.