Du bist nicht angemeldet.

1

Dienstag, 10. April 2012, 15:45

MySQL CONCAT -Abfrage

Hallo :P
Ich versuche momentan ein Heart-System zuscripten...
Funktioniert auch alles, nur beim "Heart!" -Command habe ich Probleme...

Ich will mit MySQL den Namen aus der Spalte `heartfrom`
Auslesen, und den mit "" Ersetzen (Sprich mit nichts)...
Aber die anderen Namen die in der Spalte stehen sollen dableiben. Sprich, ich will nicht die komplette Spalte "säubern".
Beispiel der Spalte: 'Testaccount1:Testaccount2:Testaccount3:'
Und nun muss ich irgendwie den Namen Testaccount2 aus der Spalte rausbekommen...
Wie mach ich das?

Bei meinem "heart" -Command fügt er die Namen so hinzu:

Quellcode

1
UPDATE `accounts` SET `heartfrom` = concat(`heartfrom`, '%s:') WHERE `name` = '%s'


Das klappt auch alles soweit, aber nach 2 Stunden rumprobieren, Frage ich hier im Forum um Rat...
Also wenn jemand eine Idee hat, bitte her damit :D
Mein Fachgebiet:
- HTML
- PHP
- MySQL
- Perl

2

Dienstag, 10. April 2012, 16:24

Du weist schon, dass man bei CONCAT nur "anhängt"?

Nutz dafür nen REPLACE:

MySQL-Abfrage(n)

1
2
3
4
UPDATE `account_test` SET `heartfrom`=REPLACE(`heartfrom`, 'nick1:', '') WHERE `name` = 'james'

-- Also für dich lautet es dann folgendermaßen
UPDATE `accounts` SET `heartfrom`=REPLACE(`heartfrom`, '%s:', '') WHERE `name`='%s' LIMIT 1


P.S.

Warum nutzt ihr keine LIMITS? ;-)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Blizzard« (19. Februar 2013, 12:30)


Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Landor_Frostwolf

Localhost

Ehemaliger Supporter

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

3

Dienstag, 10. April 2012, 16:48

Beispiel der Spalte: 'Testaccount1:Testaccount2:Testaccount3:'
Und nun muss ich irgendwie den Namen Testaccount2 aus der Spalte rausbekommen...
Wie mach ich das?



Java-Quelltext

1
2
3
4
String nicks = "Testaccount1:Testaccount2:Testaccount3:";
String[] split = nicks.split(":");

// split[1] = Testaccount2
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."

4

Dienstag, 10. April 2012, 16:59

Du weist schon, dass man bei CONCAT nur "anhängt"?
Nutz dafür nen REPLACE:

MySQL-Abfrage(n)

1
2
3
4
UPDATE `account_test` SET `heartfrom`=REPLACE(`heartfrom`, 'nick1:', '') WHERE `name` = 'james'

-- Also für dich lautet es dann folgendermaßen
UPDATE `accounts` SET `heartfrom`=REPLACE(`heartfrom`, '%s:', '') WHERE `name`='%s' LIMIT 1


P.S.
Warum nutzt ihr keine LIMITS? ;-)
Bin gerade am League of Legends spielen :D
...Ich werde es später ausprobieren, ich danke dir trozdem schonmal :)

// Edit:
Klappt, danke :thumbsup:
Mein Fachgebiet:
- HTML
- PHP
- MySQL
- Perl

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Landor_Frostwolf« (10. April 2012, 17:57)