Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Odfiltrowanie pół zawierających same liczby, Odfiltrowanie pół zawierających same liczby/cyfrę
--bogdanh--
post
Post #1





Goście







Za pomocą źle napisanego kwestionariusza do bazy MySQL w pole, które mialo zawierać ścieżkę dostępu i nazwę pliku zostało wprowadzonych bardzo dużo rekordów zawierających liczby. Kasowanie ręczne nie wchodzi w grę z powodu ich ilości.

Jak odfiltrować rekordy, w których w danym polu są wyłącznie liczby.
Np. 3674... do odfiltrowania, ale pozostawienie np. "cos_tam/abc34[ds-12.fs_itd?
Go to the top of the page
+Quote Post
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


REGEXP
i wyrażenie [0-9]+ na przykład, aczkolwiek jest chyba jakiś aliast na "liczby"

http://dev.mysql.com/doc/refman/5.1/en/reg...operator_regexp

Ten post edytował matiit 24.04.2013, 09:16:30
Go to the top of the page
+Quote Post
--bogdanh--
post
Post #3





Goście







Próbowałem z tego skorzystać, ale nie dałem rady złożyć zapytania wyłączającego rekordy z samymi liczbami w danym polu, a akceptujące zawartość mieszaną + znaki typu [{/-_=!.
W samym PHP też nie daję rady.
Go to the top of the page
+Quote Post
matiit
post
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Pokaż co napisałes sam...
Go to the top of the page
+Quote Post
--bogdanh--
post
Post #5





Goście







Cytat(matiit @ 24.04.2013, 09:43:38 ) *
Pokaż co napisałes sam...

Ok - jak wrócę z pracy. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
--bogdanh--
post
Post #6





Goście







Cytat(-bogdanh- @ 24.04.2013, 09:47:23 ) *
Ok - jak wrócę z pracy. (IMG:style_emoticons/default/smile.gif)

---EDIT---
W sumie wybrnąłem prymitywnie.
Zadałem pierwszy znaku w polu - czy nie jest cyfrą.
Zauważyłem, że pól mieszanych z początkową cyfrą/liczbą + inne znaki jest niewiele.
Zastosowałem:
[code]SELECT * FROM tabela WHERE kolumna REGEXP '^[:0-9:]'[\code]
Niestety na bardziej skomplikowane zapytanie mam za mało wiedzy. (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
matiit
post
Post #7





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM tabela WHERE kolumna REGEXP '[0-9]+'

Takie coś powinno zadziałać.
Go to the top of the page
+Quote Post
bpskiba
post
Post #8





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM tabela WHERE kolumna=kolumna*1
Go to the top of the page
+Quote Post
--bogdanh--
post
Post #9





Goście







Dziękuję. (IMG:style_emoticons/default/smile.gif)
Załatwione.
Go to the top of the page
+Quote Post
matiit
post
Post #10





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


bpskiba, Twoje rozwiązanie zawodzi dla liczb typu '01', '00, '009','0000' i tak dalej.
Go to the top of the page
+Quote Post
bpskiba
post
Post #11





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Cytat(matiit @ 25.04.2013, 10:58:26 ) *
bpskiba, Twoje rozwiązanie zawodzi dla liczb typu '01', '00, '009','0000' i tak dalej.

zgoda (IMG:style_emoticons/default/oneeyedsmiley02.png)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 11:11