Kom ihåg mig?
Home Menu

Menu


Hjälp med ett mysql query

Ämnesverktyg Visningsalternativ
Oläst 2005-06-25, 14:46 #1
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
UPDATE members SET username = username+'_OLD' WHERE id = 1;



Vet att det inte är korrekt... men nu kanske förstår vad jag vill ha gjort...

Jag vill lägga till _OLD på användarnamnet som är ett text-fält i mysql-databasen... Någon som har ett tips på hur jag skall göra?
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-25, 14:50 #2
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Du måste använda CONCAT. Så det blir "UPDATE members SET username = CONCAT(username, '_OLD') WHERE id = 1;"
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-25, 14:52 #3
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Citat:
Originally posted by WizKid@Jun 25 2005, 14:50
Du måste använda CONCAT. Så det blir UPDATE members SET username = CONCAT(username, _OLD) WHERE id = 1;

Aha, så heter det

Tack så mycket, precis vad jag ville göra.
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-25, 14:58 #4
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Hur gör jag föresten om man vill göra tvärtom? Altså ta bort en viss text, eller dom X sista bokstäverna?
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-25, 15:34 #5
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Antagligen SUBSTRING tillsammans med LENGTH. Mer om sträng funktioner i MySQL hittar du på http://dev.mysql.com/doc/mysql/en/string-functions.html

"username = LEFT(username, LENGTH(username)-4)" eller "username = SUBSTRING(username, 0, LENGTH(username)-4)" borde nog fungera.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-25, 19:43 #6
fabians avatar
fabian fabian är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2004
Inlägg: 2 162
fabian fabian är inte uppkopplad
Klarade millennium-buggen
fabians avatar
 
Reg.datum: Jul 2004
Inlägg: 2 162
Perfekt

Nu skall jag krångla lite till.

Hur gör jag för att utföra det första queryt (UPDATE members SET username = CONCAT(username, '_OLD') WHERE id = 1 på dom som INTE slutar på _OLD?

where username != *_OLD
fabian är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-25, 23:50 #7
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
Vad skall man säga fabian.. manualen finns på http://mysql.com/doc/

Du kan faktiskt göra på tre olika sätt lite beroende på vilken data det är du lagrar, hursomhelst:

UPDATE blalba SET yadayada WHERE 1 != 1;
UPDATE blalba SET yadayada WHERE 1 <> 1;
UPDATE blalba SET yadayada WHERE NOT (1 = 1); -- paranteser lite överflödiga men klargör sambandet.

Lycka till. Det lönar sig att titta i manualen, då kanske du lär dig något annat när du ändå letar efter ett visst svar.

edit: Sär skrivning
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-06-26, 00:05 #8
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
"UPDATE members SET username = CONCAT(username, '_OLD') WHERE username NOT LIKE '%\_OLD';" borde fungera. Däremot låter det som ett väldigt dumt sätt att göra som du gör. Av det jag förstått låter det mycket smartare att ha ett fält i tabellen som heter old som du sätter till 0 eller 1. Framförallt sista LIKE-queryn kan gå väldigt långsamt eftersom den inte kan använda sig av index.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 10:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017