![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Posiadam formularz wyszukiwania, który przeszukuje kolumnę uprawienia, i wyświetla osoby wyszukane poprzez zapytanie., które spełniają warunek np: like 'a1b' id(pk) pesel kod_upr 1 111 a1 2 222 b1 3 333 c1 4 111 b1a 5 111 c1 6 222 a1b
Teraz chciałbym rozbudować zapytanie które wyłapie mi wszystkie osoby, które posiadają kod_upr like'a1b' and like 'b%' Niestety nie mogę poradzic sobie z tym zapytaniem |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
patrzac na to:
1 111 a1 2 222 b1 3 333 c1 4 111 b1a 5 111 c1 6 222 a1b nikt nie posiada takich uprawnien, czyli kod_upr rownemu 'a1b' oraz dodatkowo kod_upr zaczynajacego sie od 'b' w tym samym rekordzie (IMG:style_emoticons/default/smile.gif) Rozumiesz? moze chodzi i co to ze 'and' trzeba zamienic na 'or' (IMG:style_emoticons/default/smile.gif) gdybys chcial wyszukac like 'b1a' and 'b%' to powinno znalesc: 4 111 b1a Chodzi o to w podanym przez ciebie warunku logicznym sprawdzasz caly czas jeden rekord, jedna kolumne. Mowiąc krótko: a1b nie zaczyna sie od b, dlatego nie znajduje danych. Ten post edytował wiiir 21.01.2013, 22:56:36 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odp.
Ale jak wyszukać wszystkie osoby, które mają zarówno uprawienie a1 i c1 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
SELECT id_osoby ,GROUP_CONCAT(kod_upr SEPARATOR ',') as kod_upr FROM tabelka GROUP BY id_osoby having kod_upr = 'a1,c1'
Mozna pewnie ladniej ale juz 23 i mi sie nie chce (IMG:style_emoticons/default/tongue.gif) EDIT: Tylko nie wiem czy ten having zadziala.. jak nie to daj znac Ten post edytował wiiir 21.01.2013, 23:12:30 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 3 Dołączył: 19.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
Proponuje znacznie ładniejsze (przynajmniej moim zdaniem) i znacznie szybsze (GROUP BY i HAVING są tu zupełnie zbędne) rozwiązanie:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
A dla 10 uprawnień? A dla stu? (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 3 Dołączył: 19.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
Masz rację, dla większej liczby uprawnień twoje może być wydajniejsze (dla 100 moje jest niewykonalne).
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ten IN jest sredni w zastosowaniu, bo w moim przypadku masz jeden parametr i reszta cie gila (IMG:style_emoticons/default/wink.gif)
Chyba ze PDO i inne (albo samo mysql (IMG:style_emoticons/default/biggrin.gif) ) lapia tablice jako argumenty to zwracam honor (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Twój kod też nie działa. (IMG:style_emoticons/default/smile.gif) Po przeróbkach pewnie by zaskoczył, ale jak na razie nie działa...
Przykład: id_osoby, kod_upr 1, 'c1' 1, 'a1' I nie działa... Group_CONCAT zwróci 'c1,a1' Drugi przykład: id_osoby, kod_upr 1, 'a1' 1, 'c1' 1, 'b1' (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Bez przesady, wystarczy sortowanie i dziala
Ten post edytował wiiir 24.01.2013, 21:23:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:36 |