Re: concat_ws
O tai kur klaida ar klaidos pranešimas, viskas ok gi.
Tai kaip man tuos blob ir rašys vietoj normalių duomenų ar kaip?
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → SQL užklausos ir duomenų struktūros → concat_ws
O tai kur klaida ar klaidos pranešimas, viskas ok gi.
Tai kaip man tuos blob ir rašys vietoj normalių duomenų ar kaip?
Tau čia phpMyAdmin'as rodo, kad BLOB tipas ir kiek simbolių užima, ten kažkur gali pasirinkti ar BLOB'us rodyt ar pačius duomenis, o PHP scriptas matys kaip normalius string tipo duomenis.
šitas visai neina updatint kas negerai jame?
update atsss set attachments = (SELECT files.reply_id,GROUP_CONCAT( CAST (CONCAT_WS( att_id , '#' , real_name , ',' )AS CHAR) ) FROM files,goo WHERE files.reply_id=goo.id GROUP BY files.reply_id;)
Visada jeigu rašai parašyk ir klaidos pranešimą.
Paskui išmok užklausas rašyti taip, kad jas būtų galima normaliai perskaityti:
UPDATE atsss
SET attachments = (
SELECT files.reply_id,
GROUP_CONCAT( CONCAT_WS( att_id , '#' , real_name , ',' ) )
FROM files,
goo
WHERE files.reply_id = goo.id
GROUP BY files.reply_id;
)
Man atrodo tu čia sumaišei vidinės užklausos (sub-užklausos) ir išorinės užklausų dalis.
Beto jokie kabliataškiai nededami.
Visada jeigu rašai parašyk ir klaidos pranešimą.
Paskui išmok užklausas rašyti taip, kad jas būtų galima normaliai perskaityti:
UPDATE atsss
SET attachments = (
SELECT files.reply_id,
GROUP_CONCAT( CONCAT_WS( att_id , '#' , real_name , ',' ) )
FROM files,
goo
WHERE files.reply_id = goo.id
GROUP BY files.reply_id;
)Man atrodo tu čia sumaišei vidinės užklausos (sub-užklausos) ir išorinės užklausų dalis.
Beto jokie kabliataškiai nededami.
Meta tokią klaidą:
1241 - Operand should contain 1 column(s) mysql
UPDATE atsss
SET attachments = (
SELECT files.reply_id,
GROUP_CONCAT( CAST( CONCAT_WS( '#', att_id, real_name ) AS CHAR ) SEPARATOR ',' )
FROM files
WHERE files.reply_id = goo.id
GROUP BY files.reply_id )
Tai dabar pabandyk pagalvot, ką daro tavo SQL'as:
1) vidinė sub-užklausa atlieka duomenų atrinkimą ir suklijavimą, čia viskas gerai;
2) klausimas yra - kiek rezultatų (eilučių) gražina tavo ta užklausa - ar vieną ar daugiau, jeigu vieną, tai viskas gerai, nes tada 'SET kazkas = (1_reiksme)' veiks teisingai, bet jeigu gražina daugiau - bus problema;
3) kitas klausimas - tavo sub-užklausa gražina du stulpelius, kaip tu įsivaizduoji veikia SET operatorius UPDATE užklausoje, kaip tu nori vienam stulpeliui priskirti dviejų stulpelių reikšmes? (apie tai klaidos pranešimas ir yra);
4) žinok kažkas blogai pas tave su WHERE sąlyga, man kažkur trūksta lentelės "goo", kaip tu WHERE sąlygoje naudoji lenetlės "goo" duomenis, kai ta lentelė daugiau niekur kitur nefiguruoja?
Tai dabar pabandyk pagalvot, ką daro tavo SQL'as:
1) vidinė sub-užklausa atlieka duomenų atrinkimą ir suklijavimą, čia viskas gerai;
2) klausimas yra - kiek rezultatų (eilučių) gražina tavo ta užklausa - ar vieną ar daugiau, jeigu vieną, tai viskas gerai, nes tada 'SET kazkas = (1_reiksme)' veiks teisingai, bet jeigu gražina daugiau - bus problema;
3) kitas klausimas - tavo sub-užklausa gražina du stulpelius, kaip tu įsivaizduoji veikia SET operatorius UPDATE užklausoje, kaip tu nori vienam stulpeliui priskirti dviejų stulpelių reikšmes? (apie tai klaidos pranešimas ir yra);
4) žinok kažkas blogai pas tave su WHERE sąlyga, man kažkur trūksta lentelės "goo", kaip tu WHERE sąlygoje naudoji lenetlės "goo" duomenis, kai ta lentelė daugiau niekur kitur nefiguruoja?
Dėkui susitvarkiau, pasirodo kad vis dar neina man suprasti selecto nors jis man atrodo paprasčiausias. :)
PHP ir MySQL → SQL užklausos ir duomenų struktūros → concat_ws
Powered by PunBB, supported by Informer Technologies, Inc.