FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Klarade millennium-buggen
|
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? |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Du måste använda CONCAT. Så det blir "UPDATE members SET username = CONCAT(username, '_OLD') WHERE id = 1;"
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Klarade millennium-buggen
|
Citat:
Aha, så heter det ![]() Tack så mycket, precis vad jag ville göra. |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Klarade millennium-buggen
|
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?
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
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. |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Klarade millennium-buggen
|
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 ![]() where username != *_OLD ![]() |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Klarade millennium-buggen
|
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 |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Mycket flitig postare
|
"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.
|
||
![]() |
![]() |
Svara |
|
|