Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] czyszczenie zbednych rekordow
Forum PHP.pl > Forum > Przedszkole
lucks
witam

narobiło mi sie w bazie sporo smieci, wartosc pola wyswietla sie jako spacja ale nie dzialaja zapytania typu where pole = '' lub where pole = ' ', pole is null
sam juz nie wiem co z tym zrobic, probwalem trucate - tez nie dziala, regexp?
wieprzucpp
to może sprawdź to przy pomocy komendy strlen, określającej długość ciągu.

if(długość jest równa 1 i jest równa spacji)
{
usuń
}

pozdro ;]
axel_pl
zrób po prostu zeby usunac wszystki wpisy ponizej 2 znakow
lucks
sprawa jest nieco bardziej zlozona dlatego ze w polu mogą znalez sie porprawne odpowiedzi w postaci liczby, lub cyfry ale rózniez string
2 -ok
5-ok
4444-ok
aabbcc-ok
22hh44 -ok
' ' -nie ok przy czym tak jak pisalem, mimo ze wyglada jak spacja nie moge tych rekordow wyciagnoc ani sakoswac zadnym zapytaniem
phpion
Dlaczego nie możesz? Spróbuj:
  1. DELETE FROM tabela WHERE pole=" ";

lub
  1. DELETE FROM tabela WHERE pole LIKE " %";
lucks
tego proboealem juz wczesiej, niestety nie dziala sad.gif ,
co ciekawe
  1. LIKE " %"

zwraca wszystkie pola w których sa stringi i one wszystkie zaczynaja sie od tej dziwnej spacji, niestety tych gdzie jest tylko spacja nie zwraca, pola w których są warosci numereczne nie ma spacji wogole....

cos mi sie wydaje ze nie uda sie tak tego wyciac wiec moze z drogijej strony... wyciagnac wszytkie stringi i wartosci numeryczne dac negacje i kasowac?

problem w tym ze o ile
  1. SELECT * FROM TABLE WHERE pole REGEXP (^[0-9]$)


zwraca mi wszystkie pola numeryczne,to

  1. SELECT * FROM TABLE WHERE pole NOT REGEXP (^[0-9]$)


wcale nie chce pol nie numerycznych, jak dodam jeszcze stringi to juz masakra wyniki sa jak dla mnie zupelnie nieprzewidywalne

[edit]

nikt nie ma pomysłu jak by mozna to wyczyscic? ew jak zidentyfikowac dziwną spację? moze byc tez sposob na wuciagniecie wszystkich innych rekordow poza tymi ze spacją
maziak
Witaj, nie wiem czy zadziala ale warte proby :

Zobacz do czego w ASCII jest przypisana ta spacja,bo mozliwe ze to jakis "dziwny znak" skoro zwyczajnie nie dziala, poprzez wybranie ja z bazy i :
  1. <?php
  2. $znak=ord($zmienna);
  3. ?>


a potem w zapytaniu SQL przez php :
  1. <?php
  2. $zapytanie= "select * from costam where cosjeszcze='".chr($znak)."' ";
  3. ?>
lucks
thumbsupsmileyanim.gif thumbsupsmileyanim.gif thumbsupsmileyanim.gif thumbsupsmileyanim.gif

zadziałało dzieki, ascii 160.... dziwne
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.