Topic: concat_ws

update goo,files set attachments = concat_ws('',files.id,'#', files.title,',') where files.reply_id=goo.id

Kodėl ši užklausa nesuveda visų duomenų t.y. paima tik pirmą files.reply_id o sekančios eilutės nepaima iš files lentelės

turiu

files
-------------------------
id    |    title        |  reply_id
------------------------
1          a               4
2          b              4
3          c                4

jis paima tik pirmą eilutę o ne visas atitikmenis id ir gaunasi kad įrašas nepilnas yra pas goo.set attachments
ir attachments turėtų būti taip

1#a,2#b,3#c,

o yra blogai ir yra taip dabar ir trūksta...

1#a,

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

Re: concat_ws

Gali trumpai parašyti, ką, tavo nuomone, daro CONCAT_WS() funkcija?

Re: concat_ws

minde wrote:

Gali trumpai parašyti, ką, tavo nuomone, daro CONCAT_WS() funkcija?

Nu kaip man pasirodė tai jinai leidžia pasirinkti kokia forma info nori įrašyti į lauką. :)

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

Re: concat_ws

skuelas wrote:
minde wrote:

Gali trumpai parašyti, ką, tavo nuomone, daro CONCAT_WS() funkcija?

Nu kaip man pasirodė tai jinai leidžia pasirinkti kokia forma info nori įrašyti į lauką. :)

Neteisingas atsakymas. Skaityk dokumentacijoje, ką jinai tiksliai daro (-; Su spėliojimu toli nenueisi programavime..

Re: concat_ws

minde wrote:
skuelas wrote:
minde wrote:

Gali trumpai parašyti, ką, tavo nuomone, daro CONCAT_WS() funkcija?

Nu kaip man pasirodė tai jinai leidžia pasirinkti kokia forma info nori įrašyti į lauką. :)

Neteisingas atsakymas. Skaityk dokumentacijoje, ką jinai tiksliai daro (-; Su spėliojimu toli nenueisi programavime..

Skirtukas :) Tai ką pasiūlytum man alternatyvą?

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

Re: concat_ws

skuelas wrote:

Skirtukas :) Tai ką pasiūlytum man alternatyvą?

Koks "skirtukas"? Kaip tu naudoji funkciją, kai nežinai ką ji daro? Paskaitk, sužinosi, kitą kartą nereikės spėlioti.

Taip pat, paskaitęs sužinosi kaip ją naudoti ir galbūt kodėl tu nepasieki norimo rezultato.

Re: concat_ws

minde wrote:
skuelas wrote:

Skirtukas :) Tai ką pasiūlytum man alternatyvą?

Koks "skirtukas"? Kaip tu naudoji funkciją, kai nežinai ką ji daro? Paskaitk, sužinosi, kitą kartą nereikės spėlioti.

Taip pat, paskaitęs sužinosi kaip ją naudoti ir galbūt kodėl tu nepasieki norimo rezultato.

Tai kad nieko doro nerašo ten taip pat google nieko gero nėra, labai neaiškus tas concat_ws... Prašau padėti, paaiškinti nes čia man nesuprantama kas kur blogai

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

Re: concat_ws

Na esmė, ta kad tu naudoji funkcija, kuri nėra agregatinė, o lygtais nori suklijuoti eilutėse esančius duomenis (bet nesu tuo tikras). Yra kiti metodai ir funkcijos tiem reikalam. Tau pravers raktažodis: mysql aggregate functions

9 (edited by skuelas 2011-01-18 20:30:14)

Re: concat_ws

minde wrote:

Na esmė, ta kad tu naudoji funkcija, kuri nėra agregatinė, o lygtais nori suklijuoti eilutėse esančius duomenis (bet nesu tuo tikras). Yra kiti metodai ir funkcijos tiem reikalam. Tau pravers raktažodis: mysql aggregate functions

Tai kaip suprantu man naudoti reikia group by?

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

Re: concat_ws

skuelas wrote:

Tai kaip suprantu man naudoti reikia group by?

Dažniausiai taip, bet priklauso nuo situacijos. Ir funkcija aišku ne ta, kurią tu dabar naudoji. Yra speciali agrgatine CONCAT_... funkcija.

Re: concat_ws

minde wrote:
skuelas wrote:

Tai kaip suprantu man naudoti reikia group by?

Dažniausiai taip, bet priklauso nuo situacijos. Ir funkcija aišku ne ta, kurią tu dabar naudoji. Yra speciali agrgatine CONCAT_... funkcija.

files
-------------------------
id    |    title        |  reply_id
------------------------
1          a               4
2          b              4
3          c                4
4          d                5
5          e                5
6            f              6

man reikia surasti ir surinkti į attachments į kiekvieną lauką visus kur reply_id sutampa su id
          goo
---------------------
attachments
---------------------
1#a,2#b,3#c,
.........................
4#d,5#e,
.........................
6#f,


į kiekvieną eilutę atitinkamai surašyti duomenis

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

Re: concat_ws

skuelas wrote:
minde wrote:
skuelas wrote:

Tai kaip suprantu man naudoti reikia group by?

Dažniausiai taip, bet priklauso nuo situacijos. Ir funkcija aišku ne ta, kurią tu dabar naudoji. Yra speciali agrgatine CONCAT_... funkcija.

files
-------------------------
id    |    title        |  reply_id
------------------------
1          a               4
2          b              4
3          c                4
4          d                5
5          e                5
6            f              6

man reikia surasti ir surinkti į attachments į kiekvieną lauką visus kur reply_id sutampa su id
          goo
---------------------
attachments
---------------------
1#a,2#b,3#c,
.........................
4#d,5#e,
.........................
6#f,


į kiekvieną eilutę atitinkamai surašyti duomenis

Patikėk manim, man tą užklausą parašyt yra 5 sekundžių darbas. Bet taip pat suprask, kad man tai visiškai neįdomu daryti ir ne dėlto šitas forumas egzistuoja.

13 (edited by skuelas 2011-01-18 21:00:05)

Re: concat_ws

minde wrote:
skuelas wrote:
minde wrote:

Dažniausiai taip, bet priklauso nuo situacijos. Ir funkcija aišku ne ta, kurią tu dabar naudoji. Yra speciali agrgatine CONCAT_... funkcija.

files
-------------------------
id    |    title        |  reply_id
------------------------
1          a               4
2          b              4
3          c                4
4          d                5
5          e                5
6            f              6

man reikia surasti ir surinkti į attachments į kiekvieną lauką visus kur reply_id sutampa su id
          goo
---------------------
attachments
---------------------
1#a,2#b,3#c,
.........................
4#d,5#e,
.........................
6#f,


į kiekvieną eilutę atitinkamai surašyti duomenis

Patikėk manim, man tą užklausą parašyt yra 5 sekundžių darbas. Bet taip pat suprask, kad man tai visiškai neįdomu daryti ir ne dėlto šitas forumas egzistuoja.

šį tą atkasiau pabandžiau kažkas išėjo viskas būtų gerai jei būtų galutinis variantas tinkamas man reikia kad būtų files.id#files.title, o yra tik title,
kaip įkišti dar files.id kad įrašinėtų kartu ir dar tarp jų # įrašinėtų?

SELECT files.reply_id,GROUP_CONCAT(title separator ',') 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

skuelas wrote:

šį tą atkasiau pabandžiau kažkas išėjo viskas būtų gerai jei būtų galutinis variantas tinkamas man reikia kad būtų files.id#files.title, o yra tik title,
kaip įkišti dar files.id kad įrašinėtų kartu ir dar tarp jų # įrašinėtų?

SELECT files.reply_id,GROUP_CONCAT(title separator ',') FROM files,goo WHERE files.reply_id=goo.id GROUP BY files.reply_id;

Na tai liko papildomai priklijuoti kitą stulpelį ir SEPARATOR'ių parinkti pagal norus...

Re: concat_ws

minde wrote:
skuelas wrote:

šį tą atkasiau pabandžiau kažkas išėjo viskas būtų gerai jei būtų galutinis variantas tinkamas man reikia kad būtų files.id#files.title, o yra tik title,
kaip įkišti dar files.id kad įrašinėtų kartu ir dar tarp jų # įrašinėtų?

SELECT files.reply_id,GROUP_CONCAT(title separator ',') FROM files,goo WHERE files.reply_id=goo.id GROUP BY files.reply_id;

Na tai liko papildomai priklijuoti kitą stulpelį ir SEPARATOR'ių parinkti pagal norus...

O kaip tai padaryti nes neradau niekur pavyzdžio?

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

Re: concat_ws

Taigi realiai tau vietoje title reikia panaudoti savo CONCAT_WS() funkciją, o pavyzdžio, kad neradai, tai jau meluoji (-;

Kitaip sakant iš pradžių suklijuoji eilutės lygyje, o paskui tuos suklijuotus duomenis suklijuoji su agregatine funkcija grupės lygyje.

17 (edited by skuelas 2011-01-18 21:43:32)

Re: concat_ws

minde wrote:

Taigi realiai tau vietoje title reikia panaudoti savo CONCAT_WS() funkciją, o pavyzdžio, kad neradai, tai jau meluoji (-;

nu rimtai neradau...
bet meta klaidą
GROUP_CONCAT(CONCAT_WS(files_id,'#',title) separator ',')

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

Re: concat_ws

skuelas wrote:

bet meta klaidą
GROUP_CONCAT(CONCAT_WS(files_id,'#',title) separator ',')

Kokią klaidą?

Re: concat_ws

minde wrote:
skuelas wrote:

bet meta klaidą
GROUP_CONCAT(CONCAT_WS(files_id,'#',title) separator ',')

Kokią klaidą?

reply_id     GROUP_CONCAT( CONCAT_WS( att_id , '#' , real_name , ',' ) )
76     [BLOB - 11 B]
83     [BLOB - 22 B]
85     [BLOB - 22 B]

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

Re: concat_ws

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