Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic

Hozzászólások

(#601) vincent001


vincent001
csendes tag

Sziasztok,

Abban szeretném kérni a segítségeteket, hogyan kell MySql adatbázisból importálni ,hogy az localhosttra fel tudjam exportálni.
Szeretnék php fájlokat tesztelni illetve nézni ha a css ben átírok valamit akkor hogyan mi változik.
Wampot szeretnék használni mint szerver oldali progi de adatbázis nélkül ez nem fog menni ha jól tudom.

Kérlek segítsetek. :-)
Köszi

(#602) Sk8erPeter válasza vincent001 (#601) üzenetére


Sk8erPeter
nagyúr

Nem értem a kérdést. A WAMP telepíti az Apache-ot, MySQL-t, PHP-t Windows rendszerekre. Tehát a telepítése után tudsz adatbázist kezelni, ha akarsz, de köze nincs az adatbázisnak ahhoz, hogy tesztelgesd a PHP-fájljaidat, meg nézegesd a HTML-részét, ha a CSS-kódon módosítasz valamit... :U
Kicsit kevered a fogalmakat, vagy rosszul tetted fel a kérdést.
A MySQL-ből pl. phpMyAdmin-felületen nagyon egyszerűen tudsz exportálni akár komplett adatbázisokat (vagy csak kijelölt táblákat) külön fájlba vagy csak a kimenetre, majd ezt a kódot tudod importálni szintén phpMyAdmin-felületen egy másik adatbázisba.

Sk8erPeter

(#603) dekac


dekac
tag

Sziasztok!

Feltelepítettem a xamppot, már jó ideje használom a phpmyadmin felületet, de most úgy gondoltam, hogy nem kattintgatok, hanem parancssoros módszerrel listázom ki a táblákat, listázom ki a szükséges infót. Start, futtatás, cmd, cd c:\xampp\mysql\mysql, cd mysql.exe, el is indul az adatbázis konzolja, azonban mikor kilistáztatom az adatbázisokat csak 2 alap adatbázis van (test, information...). Hogyan tudnám elérni parancssorral a phpmyadminban lévő adatbázisokat?

Köszi!

(#604) dekac


dekac
tag

dupla post, sorry, törölhető

[ Szerkesztve ]

(#605) sonar válasza dekac (#603) üzenetére


sonar
addikt

esetleg
use mydatabase

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#606) PazsitZ válasza dekac (#603) üzenetére


PazsitZ
addikt

root userrel próbáld meg szerintem. mysql.exe -u root

- http://pazsitz.hu -

(#607) dekac válasza PazsitZ (#606) üzenetére


dekac
tag

Ezaz! Köszi! :R

(#608) sonar


sonar
addikt

Sziasztok

Van egy SQL script ami elvileg létrehozná a táblákat, egyik serveren meg tudtam csinálni, de egy másikon nem. Kiesik azzal, hogy syntax hibája van. De egyszerűen nem jövök rá, hogy miért.

/*
Navicat MySQL Data Transfer

Source Server : ±¾»ú
Source Server Version : 50149
Source Host : swerditff:3306
Source Database : etms

Target Server Type : MYSQL
Target Server Version : 50149
File Encoding : 65001

Date: 2010-08-12 16:32:50
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `errtab`
-- ----------------------------
DROP TABLE IF EXISTS `errtab`;
CREATE TABLE `errtab` (
`No` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`mtsn` varchar(16) NOT NULL,
`errtime` datetime NOT NULL,
`errcode` varchar(4) NOT NULL,
`testlog` text NOT NULL,
`noinol` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`No`),
KEY `noinol` (`noinol`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='InnoDB free: 169984 kB';

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#609) RedSign válasza sonar (#608) üzenetére


RedSign
tag

sonar - Milyen hibát ír ki?

http://www.redsign.hu

(#610) sonar válasza RedSign (#609) üzenetére


sonar
addikt

Bocs az tényleg lemaradt :B

Script line: 21 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='In' at line 9

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#611) Sk8erPeter válasza sonar (#610) üzenetére


Sk8erPeter
nagyúr

Bár gondolom azóta megoldódott, de most néztem rá erre a topicra. :P

Hátha másnál is lesz ilyen, itt van egy lehetséges megoldás: [link]

Itt a problémát észlelő és megoldó hozzászóló ezt a részt:
KEY `gencompanyid` (`gencompanyid`) USING BTREE
lecserélte erre:
KEY `gencompanyid` USING BTREE (`gencompanyid`)
és így nála már működött.
Lehet, hogy MySQL-verziókülönbség az oka.

Akkor nálad meg gondolom
KEY `noinol` (`noinol`) USING BTREE
helyett ez kéne:
KEY `noinol` USING BTREE (`noinol`)

Sk8erPeter

(#612) Speeedfire


Speeedfire
nagyúr

Adott egy tábla ahol pl 3 azonosító van id, fid, szoveg
Az id ugye autoincrement, a fid az azonosítója a felhasználónak a szövegben meg szöveg van.
Lehet úgy csoportosítani ezeket, hogy melyik felhasználó mennyit küldött be?
Valami ilyesmi:
fid + darabszáma

Így próbáltam meg, de így mindet kiírja:

select *, SUM(fid) from tabla

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#613) Sk8erPeter válasza Speeedfire (#612) üzenetére


Sk8erPeter
nagyúr

SELECT `tabla`.`fid` , COUNT(*) AS bejegyzesek_szama
FROM `tabla`
GROUP BY `tabla`.`fid`

:K

Sk8erPeter

(#614) PazsitZ válasza Speeedfire (#612) üzenetére


PazsitZ
addikt

SELECT fid, COUNT(fid) FROM tabla GROUP BY fid
lassú vagyok :)

[ Szerkesztve ]

- http://pazsitz.hu -

(#615) Speeedfire válasza Sk8erPeter (#613) üzenetére


Speeedfire
nagyúr

Köszi mindkettőtöknek. :R

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#618) Speeedfire válasza Speeedfire (#617) üzenetére


Speeedfire
nagyúr

Helyesen:

SELECT fid, count(fid) as mennyi FROM `linkek_tartalom`
group by fid
having count(fid) >= 10

:))

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#619) Speeedfire


Speeedfire
nagyúr

Hogy lehet táblákat átnevezni? Konkrétan van kb 100 táblám, aminek prefixet akarok adni.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#620) Frigo válasza Speeedfire (#619) üzenetére


Frigo
őstag

A RENAME TABLE parancsal tudsz táblákat átnevezni csak vigyázz ,hogy mikor használod ne fusson semmilyen progi ami használja az adatbázist.Illetve ha ilyen sok tábláról van szó akkor érdemes hozzá tárolt eljárást írni ,erre ITT egy remek példa.

[ Szerkesztve ]

(#621) Speeedfire válasza Frigo (#620) üzenetére


Speeedfire
nagyúr

Ez ha jól sejtem akkor linuxos megoldás akar lenni....mindenesetre köszi. :R

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#622) Frigo válasza Speeedfire (#621) üzenetére


Frigo
őstag

Rosszul sejted :) A tárolt eljárások a függvények SQL megfelelője.

(#623) Speeedfire válasza Frigo (#622) üzenetére


Speeedfire
nagyúr

A txt fájl tartalmát kellene feltölteni az sql mezőbe majd végrehajtani?
Hogy hívom meg a függvény?
Kicsit kusza nekem ez.
Jelen esetben nekem van ~120 táblám és egy drupal_ prefixet szeretnék oda rakni.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#624) Frigo válasza Speeedfire (#623) üzenetére


Frigo
őstag

phpmyadminban a konzolnál bemásolod a függvény kódját ,majd ha végrehajtotta utána a :
CALL prefix_all(‘DATABASE-NAME’,'PREFIX’,0); paranccsal meghívod .A 'DATABASE-NAME' az adatbázisod neve ,a 'PREFIX' amit meg szeretnél adni prefixnek .Ha a végén 0-át adsz meg akkor törli a prefixet a táblák neve elől ha 1-et akkor elejére fűzi.De előtte mindenképp készíts mentést az adatbázisról .

[ Szerkesztve ]

(#625) Speeedfire válasza Frigo (#624) üzenetére


Speeedfire
nagyúr

Nem akar összejönni...

H nem választom ki az adatbázist akkor azt a hiábt mondja, ha kiválasztom akkor:

A MySQL mondta:

#1312 - PROCEDURE 02630_drupal.prefix_all can't return a result set in the given context

Így hívtam meg:
CALL prefix_all('02630_drupal','drupal_',1);

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#626) Frigo válasza Speeedfire (#625) üzenetére


Frigo
őstag

Ja igen a mind a függvény végrehajtása mind a meghívás előtt válaszd ki a megfelelő adatbázist .Most próbáltam ki nálam működött rendesen.

(#627) Speeedfire válasza Frigo (#626) üzenetére


Speeedfire
nagyúr

Ez az, kiválasztottam az adatbázist bele mentem az sql részbe. Beillesztettem a scriptet, utána függvény meghívását és akkor mondta ezt a hibát.

DELIMITER $$

DROP PROCEDURE IF EXISTS `prefix_all` $$
CREATE PROCEDURE `prefix_all` (in_db varchar(20),in_prefix varchar(10),in_add_rem TINYINT(1))
BEGIN

DECLARE done INT default 0;
DECLARE tbl_nm VARCHAR(30);
DECLARE ren VARCHAR(200);

DECLARE table_cur CURSOR FOR select table_name from information_schema.tables where table_schema=in_db;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN table_cur;
rename_loop:LOOP
FETCH table_cur INTO tbl_nm;
IF done=1 THEN
LEAVE rename_loop;
END IF;
if in_add_rem=1 then #ADD
SET @ren = concat("rename table ", in_db,'.',tbl_nm ," to ",in_db,'.',in_prefix,tbl_nm,";");
else
set @ren= concat("rename table ", in_db,'.',tbl_nm ," to ",in_db,'.',right(tbl_nm,length(tbl_nm)-length(in_prefix)),';');
end if;
# select @ren;
prepare ren from @ren;
execute ren;
END LOOP;
CLOSE table_cur;
select table_name 'Tables' from information_schema.tables where table_schema=in_db;

END $$

DELIMITER ;

CALL prefix_all('02630_drupal','drupal_',1);

Hiba
SQL-lekérdezés:

DELIMITER;

CALL prefix_all(

'02630_drupal', 'drupal_', 1
);

A MySQL mondta:

#1312 - PROCEDURE 02630_drupal.prefix_all can't return a result set in the given context

[ Szerkesztve ]

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#628) Frigo válasza Speeedfire (#627) üzenetére


Frigo
őstag

Hát megnéztem amit begépeltél phpmyadminban meg mysql workbenchben egy teszt adatbázissal és működött mindegyikben. Biztos ,hogy az adatbázis nevét jól adtad meg ?

[ Szerkesztve ]

(#629) Speeedfire válasza Frigo (#628) üzenetére


Speeedfire
nagyúr

Igen!

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#630) Frigo válasza Speeedfire (#629) üzenetére


Frigo
őstag

Próbáld meg frissíteni a phpmyadmin-t vagy tedd fel a legújabb Mysql workbenchet.

(#631) Speeedfire válasza Frigo (#630) üzenetére


Speeedfire
nagyúr

Este megpróbálom majd saját linux alatt is hátha ott megy. Jelenleg most a szolgáltatónál próbálgattam.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#632) Speeedfire válasza Frigo (#630) üzenetére


Speeedfire
nagyúr

Localhost alatt összejött! :R

Lehet, hogy a szerveren valami nem volt támogatva, vagy valami ilyesmi, másra nem tudok gondolni.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#633) Speeedfire


Speeedfire
nagyúr

Kérdésem a következő lenne. Ez a lekérdezés miért nem akar menni? Sőt igazából az ilyenek nem nagyon akarnak menni nálam, be kell őket állítanom kézzel...

create table entitascim (
cimazon int not null auto_increment primary_key,
entitasazon int,
scim1 varchar(255),
scim2 varchar(255),
svaros varchar(255),
callam char(2),
sirszam varchar(10),
stipus varchar(50),
contraint kk_entitascim_entitasazon foreign key (enmtitasazon)
references entitasok(entitasazon)
)

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'primary_key, entitasazon int, scim1 varchar(255), scim2 varchar(255), svaros' at line 2

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#634) Frigo válasza Speeedfire (#633) üzenetére


Frigo
őstag

primary key-hez nem kell az alsóvonás : PRIMARY KEY

(#635) Speeedfire válasza Frigo (#634) üzenetére


Speeedfire
nagyúr

:R :W

Már másolni sem tudok.... :(((

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#636) vakondka


vakondka
őstag

Sziasztok,

Van két táblám és látszólag egyszerű lenne a feladat, mert azt kell kiíratni,
ahol nem egyezik a két tábla azonos mezőjének szöveges tartalma.
Sajnos mint tapasztaltam a != hibásan működik, ha az egyik mező a kettő közül NULL.

Ez a lekérdezés:

SELECT p.products_model, p.products_price, pd.products_name, pd.products_description, pdo.products_description as old_description, pd.language_id, p.products_last_modified
FROM products p, products_description pd, products_description_old as pdo
WHERE pdo.products_id=pd.products_id
AND p.products_id=pd.products_id
AND pd.language_id=pdo.language_id
AND pd.products_description!=pdo.products_description

Van erre valami megoldás?

https://toptarget.hu - Online Marketing Ügynökség

(#637) vakondka válasza vakondka (#636) üzenetére


vakondka
őstag

Sikerült megtalálni a megoldást! :))

Gondoltam leírom, hátha valaki másnak is szüksége lesz rá egyszer.

Szóval a kiindulási helyzet, hogy az SQL parancsok nem képesek hibátlanul elvégezni stringek összehasonlítását, amennyiben az egyik string értéke NULL.
De van egy utasítás, ami képes úgy átalakítani a NULL értéket, hogy ezután az összehasonlítás helyes legyen: CONCAT_WS
Ez végül is sztringek összefűzésére való, de az én példámnál maradva látszik,
hogy az összefűző karakter egy olyan string ami nem tartalmaz egy karaktert sem és összefűzöm az adott mező értékével ami akár null is lehet, mert ha a NULL-t összefűzzük a semmivel, akkor az már nem NULL, vagyis össze lehet hasonlítani :)

SELECT p.products_model, p.products_price, pd.products_name, pd.products_description, pdo.products_description AS old_description, pd.language_id, p.products_last_modified
FROM products p, products_description pd, products_description_old AS pdo
WHERE pdo.products_id = pd.products_id
AND p.products_id = pd.products_id
AND pd.language_id = pdo.language_id
AND (
CONCAT_WS( '', pd.products_description ) != CONCAT_WS( '', pdo.products_description )
)

https://toptarget.hu - Online Marketing Ügynökség

(#638) Lortech válasza vakondka (#637) üzenetére


Lortech
addikt

Pedig nem hibás a stringek összehasonlítása, de nem árt tisztában lenni az operátorok definíciójával. Ha nincs kikötve a tábla definícióban, hogy az adott mező nem lehet null, akkor figyelembe kell venni, hogy a mezőt operandusként felhasználva, ha az null, milyen eredmények születhetnek. Más RDBMS-eknél is (Oracle-nél biztos) oda kell figyelni a null-okra, különben alattomos bugokat lehet bevinni.

Ha a ténylegesen NULL értéket és az üres stringet funkcionális szempontból egyenlőnek tekintheted (vagy kell tekintened), akkor a megoldásod működik, egyébként technikailag nem ugyanaz a kettő, és alkalmazástól függ, hogy külön kezelendő-e, az üres string plusz információ a NULL-hoz képest.

Van a mysql-nek NULL-safe equal operátora, a <=>, aminek a definícióját megnézheted itt:
[link].
Ez az egyik egy megoldás lehet, az előző bekezdés függvényében, a másik meg a concat helyett inkább az IFNULL függvény. [link]

[ Szerkesztve ]

Thank you to god for making me an atheist

(#639) vakondka válasza Lortech (#638) üzenetére


vakondka
őstag

Szia,

Igen, nálam a null és az üres sztring ugyanaz lenne.
Ezt próbáltam először amit írtál, de nem működik, mert az adattábla összes mezőjét visszaadta eredményül:
SELECT p.products_model, p.products_price, pd.products_name, pd.products_description, pdo.products_description AS old_description, pd.language_id, p.products_last_modified
FROM products p, products_description pd, products_description_old AS pdo
WHERE pdo.products_id = pd.products_id
AND p.products_id = pd.products_id
AND pd.language_id = pdo.language_id
AND pd.products_description <=> pdo.products_description

Az IFNULL-t meg nem ismerem :B

Ezért bátorkodtam megkérdezni valakit aki jobban ért hozzá.
Szóval akkor most mi lenne a legkorrektebb megoldás ami működik is?

https://toptarget.hu - Online Marketing Ügynökség

(#640) Lortech válasza vakondka (#639) üzenetére


Lortech
addikt

Ezzel egyenlőséget vizsgálsz.

Thank you to god for making me an atheist

(#641) vakondka válasza Lortech (#640) üzenetére


vakondka
őstag

Aha...de nekem az kell ami nem egyenlő, szóval ez <=> nem jó egyáltalán erre a célra :(
Na mindegy, végül sikerült az IFNULL segítségével összehozni, kösz a tippet.

https://toptarget.hu - Online Marketing Ügynökség

(#642) Lortech válasza vakondka (#641) üzenetére


Lortech
addikt

És mondjuk nem lehet letagadni? Hogy csúnyábbat ne írjak. De majd inkább semmit nem írok, fáradt vagyok ilyenekhez.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#643) vakondka válasza Lortech (#642) üzenetére


vakondka
őstag

Nem kioktatásra, hanem konkrét segítségre lett volna szükségem, bocs hogy kérdezni mertem... :(

https://toptarget.hu - Online Marketing Ügynökség

(#644) Lortech válasza vakondka (#643) üzenetére


Lortech
addikt

Elnézést a szemétkedésért, nem kellett volna 6 sör után felnéznem a fórumra. :B
Viszont szerintem elég korrekt segítséget adtam, a konkrét megoldást nem szeretem beírkálni.
Akkor az előző hsz. helyesen így szólt volna: ha az operátornak nincsen tagadása, akkor miért ne tagadhatnád le a logikai kifejezést egy AND NOT-tal például?

Thank you to god for making me an atheist

(#645) vakondka válasza Lortech (#644) üzenetére


vakondka
őstag

Próbáltam én a tagadást, csak nem az AND NOT-al...ezért nem működött
Akkor ez így jó?:

SELECT p.products_model, p.products_price, pd.products_name, pd.products_description, pdo.products_description AS old_description, pd.language_id, p.products_last_modified
FROM products p, products_description pd, products_description_old AS pdo
WHERE pdo.products_id = pd.products_id
AND p.products_id = pd.products_id
AND pd.language_id = pdo.language_id
AND NOT pd.products_description <=> pdo.products_description

Köszi :R

https://toptarget.hu - Online Marketing Ügynökség

(#646) Lortech válasza vakondka (#645) üzenetére


Lortech
addikt

Ha működik.. :)
De arra vigyázz, hogy ezzel viszont tényleg különböző lesz a db NULL és a '', tehát neked az IFNULL-oshoz képest lehet, hogy csak érdekességnek jó.

Thank you to god for making me an atheist

(#647) vakondka válasza Lortech (#646) üzenetére


vakondka
őstag

Végre felfogtam a lényeget, köszi még egyszer! :K

https://toptarget.hu - Online Marketing Ügynökség

(#648) Sk8erPeter


Sk8erPeter
nagyúr

Hali!

Egy táblában egy mezőértéket úgy szeretnék módosítani, hogy leszűkítem egy adott azonosító szerint a találatokat, és mindig csak az adott azonosító szerint egymástól különböző találatokat módosítsam az adott táblában.

Pl. van egy tábla, ahol kutyák azonosítószáma és a hozzátartozó képek azonosítója van (egy "összerendelő" tábla), ide felvettem még egy mezőt, ami azt jelzi, hogy melyik a fő kép ezek közül, tehát adott kutyaazonosítónál melyik kép lesz az, amelyik elsőként látható a kutyáról.
A lényeg, hogy egy UPDATE-et szeretnék kiadni táblán belül szűkítve az egymástól különböző találatokra, kutyaazonosító szerint rendezve. Így próbálkoztam, ez érthető módon hibát adott, de egyelőre nincs ötletem a módszer javítására:

UPDATE `tbl_ossze` SET main_picture = 'Y'
WHERE kutya_id IN (
SELECT kutya_id AS kutyuli_id
FROM `tbl_ossze` AS tbl_ossze_2
GROUP BY kutyuli_id
)

A
SELECT * FROM `tbl_ossze` GROUP BY kutya_id
pont azt az eredményhalmazt adja, amire a módosítást szeretném elvégezni
, tehát ahol a main_picture mezőnek az 'Y' értéket szeretném adni. A többire ne vonatkozzon, ott maradjon az eredeti érték ('N').

Itt találtam egy linket hasonló problémáról, de az mégis kicsit eltér, de saját próbálkozásokban nem segített: [link]

Előre is köszi a segítséget!
Ha nem írtam le érthetően, mit szeretnék, szóljatok, és pontosítok! :R

[ Szerkesztve ]

Sk8erPeter

(#649) martonx válasza Sk8erPeter (#648) üzenetére


martonx
veterán

Ez pedig nem tűnik rossznak. Milyen hibát kapsz vissza?
Esetleg nyelvi finomságokkal lehetne javítani pl. where és alselect helyett join, majd megadni, hogy melyik táblát update-eled?

Én kérek elnézést!

(#650) Sk8erPeter válasza martonx (#649) üzenetére


Sk8erPeter
nagyúr

Hali!

Itt a hibaüzenet:
UPDATE `tbl_ossze` SET main_picture = 'Y' WHERE kutya_id IN ( SELECT kutya_id AS kutyuli_id FROM `tbl_ossze` AS tbl_ossze_2 GROUP BY kutyuli_id )

Hibaüzenet:
UPDATE `tbl_ossze` SET main_picture = 'Y' WHERE kutya_id IN (
SELECT kutya_id AS kutyuli_id
FROM `tbl_ossze` AS tbl_ossze_2
GROUP BY kutyuli_id
)

"#1093 - You can't specify target table 'tbl_ossze' for update in
FROM clause
"

A korábbi link alapján még próbálkoztam a következővel is, csak hogy lekérjem az adatokat, hogy így egyáltalán működik-e, de lehet, hogy ez úgy hülyeség, ahogy van (ez sem működik, úgyhogy sanszos):
SELECT `tbl_ossze` tabla_1
LEFT JOIN `tbl_ossze` tabla_2 ON tabla_1.kep_id = tabla_2.kep_id
AND tabla_1.kutya_id <> tabla_2.kutya_id
WHERE tabla_2.kutya_id IS NULL;

Erre a hiba:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN `tbl_ossze` tabla_2 ON tabla_1.kep_id = tabla_2.kep_id
AND tabla_1.k' at line 2
(KÉP)

Konkrétan egyébként nem tudom, mire gondoltál, hogyan lehet esetleg még megoldani. :B

Köszi az esetleges további segítséget is! :)

Szerk.:
így néz ki a táblaszerkezet:

--
-- Tábla szerkezet: `tbl_ossze`
--

CREATE TABLE `tbl_ossze` (
`kutya_id` int(11) NOT NULL COMMENT 'Kutya azonosítója',
`kep_id` int(11) NOT NULL COMMENT 'Hozzátartozó kép(ek) azonosítója',
`main_picture` enum('N','Y') collate utf8_hungarian_ci NOT NULL default 'N' COMMENT 'Ez a kép jelenjen meg főképként, amikor a kutyáról az első kép látható!',
PRIMARY KEY (`kutya_id`,`kep_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci COMMENT='Kutya és képek azonosítójának összerendelése';

[ Szerkesztve ]

Sk8erPeter

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.