昨天我錯誤地問了一個有錯誤列名的問題。 這造成了有趣的解決方案。所以我會在這裏再次提出同樣的問題,但這次我會直接使用mysql dump,所以不會有任何混淆。MYSQL中的動態列名
CREATE TABLE `tbl1` (
`UserID` char(15) DEFAULT NULL,
`col1` char(15) DEFAULT NULL,
`col2` char(15) DEFAULT NULL,
`col3` char(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `tbl2` (
`UserID` char(15) DEFAULT NULL,
`col4` char(15) DEFAULT NULL,
`col5` char(15) DEFAULT NULL,
`col6` char(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO tbl1
(`UserID`, `col1`, `col2`, `col3`)
VALUES
('user1', 'one', 'two', 'three');
INSERT INTO tbl1
(`UserID`, `col1`, `col2`, `col3`)
VALUES
('user1', 'oneone', 'twotwo', 'threethree');
INSERT INTO tbl2
(`UserID`, `col4`, `col5`, `col6`)
VALUES
('user1', 'col4name', 'col5name', 'col6name');
最終結果我查找的樣子看起來像這樣,在mysql查詢之後。
CREATE TABLE `endresult` (
`UserID` char(15) DEFAULT NULL,
`col4name` char(15) DEFAULT NULL,
`col5name` char(15) DEFAULT NULL,
`col6name` char(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
你會看到USER1對下它是由用戶1添加爲他COL4記錄「col4name」 tbl2的/她的自定義名稱爲特定列。現在我希望看到這些自定義列名顯示在「endresult」表中。
我知道這將是最好做最後使用PHP來顯示,但我真的需要在MySQL端做到這一點。 再次感謝
,我認爲這應該工作,但是我的結束,我得到「未知列在 'COL4''字段列表「?任何想法爲什麼? – Ossi 2009-09-16 02:43:11
在點」WHERE t2.userid = @userId「對查詢做了一個小的編輯這曾經是」WHERE t1.userid = @userId「t1不是查詢,嘗試自行運行select語句(整個SELECT CONCAT業務) – 2009-09-16 02:48:42
它只需要用於單個用戶和他的記錄...... I希望在這個查詢的末尾添加像WHERE user ='user1'這樣的東西,如果我能使用它的話 – Ossi 2009-09-16 02:53:06