我有一個表,看起來像這樣每行刪除重複的MySQL
| Domain | Owner | Nameservers |
__________________________________________
| Test1 | Person1 | Serv1, Serv2, Serv3 |
| Test2 | Person2 | Serv1 |
| Test3 | Person3 | Serv1, Serv2 |
我的計劃是域名服務器分割成自己的colums。 (我需要這個結構進一步導入到第三方系統)..
| Domain | Owner | Nameserver1 | Nameserver2 | Namerserver3 |
_______________________________________________________________
| Test1 | Person1 | Serv1 | Serv2 | Serv 3 |
| Test2 | Person2 | Serv1 | | |
| Test3 | Person3 | Serv1 | Serv2 | |
下表中的空的空間可能是一個空字符串或NULL。
我試過下面的查詢:
CREATE TABLE temp_import_table AS
SELECT domain,
owner,
SUBSTRING_INDEX(`nameservers` , ',', 1) AS nameserver1,
SUBSTRING_INDEX(SUBSTRING_INDEX(`nameservers` , ',', 2),',',-1) AS nameserver2,
SUBSTRING_INDEX(`nameservers` , ',', -1) AS nameserver3
但不知何故,我得到以下結果:
| Domain | Owner | Nameserver1 | Nameserver2 | Namerserver3 |
_______________________________________________________________
| Test1 | Person1 | Serv1 | Serv2 | Serv3 |
| Test2 | Person2 | Serv1 | Serv1 | Serv1 |
| Test3 | Person3 | Serv1 | Serv2 | Serv2 |
正如你可以看到被填充了「上一個」域名服務器的域名服務器連如果它在csv字段中是空的。任何人都可以幫我擺脫/清空每行的重複值?
不,不,不,不。使用單獨的表來存儲域名和名稱服務器之間的關係。 –
在使用MySQL查詢中爆炸CSV非常複雜。你應該擺脫那個CSV,而是有一個單一的記錄名稱服務器和另一邊的關係。 –
我知道結構是可怕的,完全違反規則,但我無法做任何事情,由於第三方系統:(:(這是一個稱爲強大的wordpress插件) – malen