Re: concat_ws

minde wrote:

O tai kur klaida ar klaidos pranešimas, viskas ok gi.

Tai kaip man tuos blob ir rašys vietoj normalių duomenų ar kaip?

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: concat_ws

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.

23 (edited by skuelas 2011-01-18 23:06:24)

Re: concat_ws

š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;)

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: concat_ws

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.

Re: concat_ws

minde wrote:

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 )

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: concat_ws

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?

27 (edited by skuelas 2011-01-19 11:35:49)

Re: concat_ws

minde wrote:

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. :)

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)