Rijen kopieeren in tabel
De titel is misschien wat misleidend, maar kon niets passenders bedenken.
Ik heb een tabel met daarin de teksten van een producten (korte omschrijving, lange omschrijving titel en foto titel.
Nu ben ik zover dat ik de producten in een andere taal wil gaan maken.
De structuur van het tabel is als volgt:
podium_product_taal_id
intern (koppelt deze rij aan het product)
taal (geeft de taal van deze rij aan)
naam (naam van het artikel)
omschrijving (spreekt voor zich)
omschrijving_kort (spreekt voor zich)
prijsalt (om een artikel een speciale prijs te geven, zoals: vanaf 2 euro / prijs opvraagbaar etc etc)
Nu heb ik heel veel producten zonder omschrijving, alleen de titelnaam is anders.
Nu wil ik graag alle rijen waarvan taal='NL' gaan kopieeren naar taal='EN'
Volgens mij krijg ik dan zoiets als:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO podium_product_taal2
(
intern,
taal,
naam,
omschrijving,
omschrijving_kort,
prijsalt
)
SELECT
intern,
naam,
taal =`EN`,
omschrijving,
omschrijving_kort,
prijsalt
FROM
podium_product_taal2
WHERE
taal = `NL`
(
intern,
taal,
naam,
omschrijving,
omschrijving_kort,
prijsalt
)
SELECT
intern,
naam,
taal =`EN`,
omschrijving,
omschrijving_kort,
prijsalt
FROM
podium_product_taal2
WHERE
taal = `NL`
(Ik gebruik een test tabel genaamd podium_product_taal2, normaal heet dit tabel podium_product_taal
Maar dit werk niet goed.
edit:
foutlmelding:
Quote:
#1054 - Unknown column 'EN' in 'field list'
Toevoeging op 19/02/2013 23:03:09:
Ik heb het op een andere manier opgelost
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
INSERT INTO podium_product_taal2
(
intern,
naam,
omschrijving,
omschrijving_kort,
prijsalt
)
SELECT
intern,
naam,
omschrijving,
omschrijving_kort,
prijsalt
FROM
podium_product_taal2
WHERE
taal = `NL`
(
intern,
naam,
omschrijving,
omschrijving_kort,
prijsalt
)
SELECT
intern,
naam,
omschrijving,
omschrijving_kort,
prijsalt
FROM
podium_product_taal2
WHERE
taal = `NL`
In de structuur van het tabel heb ik de standaard warde van taal op EN gezet.
Gewijzigd op 19/02/2013 22:34:19 door J C
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO podium_product_taal2
(
intern,
taal,
naam,
omschrijving,
omschrijving_kort,
prijsalt
)
SELECT
intern,
naam,
'EN',
omschrijving,
omschrijving_kort,
prijsalt
FROM
podium_product_taal2
WHERE
taal = 'NL'
(
intern,
taal,
naam,
omschrijving,
omschrijving_kort,
prijsalt
)
SELECT
intern,
naam,
'EN',
omschrijving,
omschrijving_kort,
prijsalt
FROM
podium_product_taal2
WHERE
taal = 'NL'
Je moet geen backquotes om strings zetten. Backquotes gebruik je (optioneel) om kolom- en tabelnamen aan te geven. Strings horen in single quotes. Dus ook de laatste 'NL'. (MySQL accepteert overigens ook de double quote om strings aan te geven, maar dat is niet de SQL standaard.)
De backquotes worden op 1 of andere manier door phpmyadmin erin gezet. (ik had het gekopieerd.)
Gewijzigd op 20/02/2013 02:59:08 door J C