![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Chciałem wyszukać czy dana wartość, np. 123 znajduje się w tabeli x w polu y (typ TEXT), gdzie są numery rozdzielone przecinkami.
Przykład: Kod +--------+------------+---+
| liczba | pole | | +--------+------------+---+ | 1 | 1,2,3,4,5 | 1 | | 1 | 0,2,3,6,11 | 0 | | 17 | 535,4,16,3 | 0 | | 5 | | 0 | | 5 | 5,3,1,4,55 | 1 | +--------+------------+---+ Da się to w ogóle zrobić ? -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ech... jak zwykle po napisaniu posta znalazłem rozwiązanie
![]() [sql:1:2c62c05116]SELECT cos FROM tabela WHERE FIND_IN_SET(4,kolumna)[/sql:1:2c62c05116] -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
spen a gdybym chcial znalezc np liczby 4, 8 i 22 ale oddzielone np "-"
![]() [sql:1:83bfec396e] SELECT cos FROM tabela WHERE FIND_IN_SET(4,8,22,kolumna)[/sql:1:83bfec396e] ![]() a jak nie to jest jakas mozliwosc znalziania tego bez wyciahania calego rekordu i traktowania go [manual:83bfec396e]explode()[/manual:83bfec396e] ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat spen a gdybym chcial znalezc np liczby 4, 8 i 22 ale oddzielone np "-"
![]() Ta funkcja wyszukuje tylko liczbach zlączonych do całości przez przecinek. Poza tym, FIELD_IN_SET umożliwia wyszukanie na raz tylko jednej wartości, więc musiałbyś wywołać ją 3 razy złączoną poprzez OR lub AND. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
OK kapuje
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Teraz mi przszło do głowy coś takiego:
powiedzmy, że masz pole 'wartosci' w tabeli, które rozpoczyna się i kończy '-', a wartości są rozdzielone przez '-' (np. tak "-1-45-345-33-324-55-35-335-86-35-0-14678-35-") to możesz użyć takiego zapytania: [sql:1:f26430be66]SELECT * FROM tabela WHERE LOCATE('-15-',wartosc)>1[/sql:1:f26430be66] czyli podajesz szukaną wartość ujętą w myślniki (np. -15-). -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat spen a gdybym chcial znalezc np liczby 4, 8 i 22 ale oddzielone np "-"
![]() [sql:1:ed58a31ecf] SELECT cos FROM tabela WHERE FIND_IN_SET(4,8,22,kolumna)[/sql:1:ed58a31ecf] ![]() a jak nie to jest jakas mozliwosc znalziania tego bez wyciahania calego rekordu i traktowania go [manual:ed58a31ecf]explode()[/manual:ed58a31ecf] ![]() Można troche po partyzancku regexpami: [sql:1:ed58a31ecf]SELECT cos FROM tabela WHERE kolumna regexp '^[^0-9]*4[^0-9]*8[^0-9]*12[^0-9]*$'[/sql:1:ed58a31ecf] Tylko musisz założyć, że są tam same liczby i umieszczone są zawsze rosnąco. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 07:58 |