Frågor om SQL passar grymt mycket bättre i SQL-forumet, men jag hade ändå försökt mig på något sånt härnt:
SELECT * FROM ordlista WHERE ord LIKE '%
'
7 svar · 867 visningar · startad av foks
Jag har ett script som lägger in ord i en mysql-databas (kolumntypen varchar). Allt var frid och fröjd tills jag idag upptäckte att ett antal fält fått en radbrytning direkt efter ordet. Scriptet är antagligen lätt att fixa, men frågan är hur jag nu tar bort de radbrytningar som finns med. På något sätt vill jag köra en sql-fråga som ser ut ungefär så här:
SELECT * FROM ordlista WHERE ord LIKE '%\n'
Men \n fungerar inte i mysql-frågor. Någon som vet hur man ska göra?
Frågor om SQL passar grymt mycket bättre i SQL-forumet, men jag hade ändå försökt mig på något sånt härnt:
SELECT * FROM ordlista WHERE ord LIKE '%
'
Blind som jag är hittade jag inte något SQL-forum, nu när jag vet att det finns lyckades jag hitta det. :)
Tyvärr gav din sql-fråga inte några rader alls.
Har du något fel när du lägger till i databasen som gör att läggs till en radbrytning efteråt eller är det om användarna har gjort en radbrytning innan?
Jag kör alltid trim() innan jag lägger in i databasen för att ta bort alla whitespaces i början och slutet.
Annars så kan du ju ta bort radbrytningen innan du skriver ut resultatet med trim() eller rtrim().
Det är jag som hade något fel när de lades till, har ändrat om en del efter att de lades till så jag kan inte säga exakt hur det blev fel.
Jag kör unique som index i databasen för att inte få dubletter så därför vill jag få bort radbrytningarna helt istället för att ordna till det när jag hämtar data.
Har du provat med dubbla backslashes innan n?
SELECT * FROM ordlista WHERE ord LIKE '%\\n'
Du kan ju hämta alla poster, loopa igenom dem med PHP och ta bort eventuella radbrytningar för att sedan spara posterna igen.
<?
$res = mysql_query("SELECT * FROM ordlista");
while($row = mysql_fetch_array($res))
{
if($row['ord'] != trim($row['ord']))
{
mysql_query("UPDATE ordlista set ord = '" . trim($row['ord']) . "' WHERE id = $row[id]");
}
}
?>
.. eller något i den stilen.
Jag körde på Gislaveds metod att köra genom hela tabellen, tack för hjälpen!