Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] MySQL zapytania - sprawdzenie danych w DB

Damian7546 30 Gru 2017 19:51 549 10
  • #1 30 Gru 2017 19:51
    Damian7546
    Poziom 21  

    Witam,

    Mam w MySQL tabelę 'dane' w której mam kolumnę 'Numer'.
    Chcę na początku sprawdzać czy w tabeli istnieje dany numer.

    Robię to tak:

    Kod: sql
    Zaloguj się, aby zobaczyć kod


    I jeśli mam zwrócony jeden lub więcej wierszy to uznaję że jest taki numer w tabeli.
    Można to zrobić w jakiś inny sposób ?

    0 10
  • #2 30 Gru 2017 21:08
    Sztandar18
    Poziom 25  

    Ty chcesz zapytanie w SQL czy ty z poziomu PHP'a łączysz się z bazą i chcesz sprawdzać ilość wierszy?

    0
  • #3 30 Gru 2017 21:15
    mistrzszymon1
    Poziom 21  

    I wg kodu pokaże ci ten nr albo wywali błąd :)
    from Numer :)

    0
  • #4 30 Gru 2017 21:34
    JacekCz
    Poziom 35  

    Kod: sql
    Zaloguj się, aby zobaczyć kod


    Z niego zależnie od języka/drivera odbierasz jedną liczbę (czyli zero lub więcej, a nigdy nie błąd). Oczywiście ZALEŻY czy zawsze być wykorzystywał wyselekcjonowane dane, czy tylko informacja o istnieniu.


    przy czym przemyśl, czy pole Numer jest znakowe, czy numeryczne.

    Na marginesie, select * czyli wyciąganie wszystkich kolumn) jest w pechowej sytuacji nieoptymalne
    Dodano po 2 [minuty]:
    Sztandar18 napisał:
    Ty chcesz zapytanie w SQL czy ty z poziomu PHP'a łączysz się z bazą i chcesz sprawdzać ilość wierszy?


    Dlaczego akurat z PHP ;) choć pytanie oczywiście jest ważne, bo bez tego nie sposób podać dokładnego przykładu.

    0
  • #5 31 Gru 2017 10:53
    Damian7546
    Poziom 21  

    Zapytania SQL z poziomu sterownika PLC w języku ST. Pytanie było ograniczone tylko do zapytań SQL bo z resztą nie mam problemu.

    A istnieje możliwość zapytania które zwróci różnicę dwóch wierszy z kolumny 'ilosc' które mają ten sam numer w kolumnie 'Numer' ?

    0
  • #6 01 Sty 2018 13:51
    Damian7546
    Poziom 21  

    @JacekCz
    Jeśli Numer mam typu VARCHAR to takie zapytanie będzie działać prawidłowo?:
    SELECT * FROM dane WHERE Numer='123456789'

    0
  • Pomocny post
    #7 01 Sty 2018 14:29
    JacekCz
    Poziom 35  

    Damian7546 napisał:
    @JacekCz
    Jeśli Numer mam typu VARCHAR to takie zapytanie będzie działać prawidłowo?:
    SELECT * FROM dane WHERE Numer='123456789'


    generalnie ten element języka SQL-a na wszystkich dialektach jest tolerancyjny, na oba sposoby (z apostrofami lub bez) jest poprawne.
    Jeśli pole NAPRAWDĘ jest varchar, lepsza jest kwerenda, która to wyraża to w 'prawdziwy' sposób.

    nawiasem, masz świadomość, że takie pole sortuje się:
    0
    1
    10
    100
    ...
    11
    12
    ..
    19
    2
    20
    Czyli dość zaskakująco, prawda?

    To są te elementy, że SQL jest dośc wybaczający, ale to wcale nie jest dobre, bo nie zachęca do dobrego projektu

    0
  • #8 03 Sty 2018 20:11
    Damian7546
    Poziom 21  

    @JacekCz Dzięki za pomoc.

    Dodano po 3 [minuty]:

    @Damian7546 Mając kolumnę 'Numer' w której jest kilka pozycji o tym samym numerze np: '12345' oraz jest kolumna 'operacja' i w jednym z wierszy 'operacja' jest wartość 'Zmiana'...

    Da się za pomocą jednego zapytania sprawdzić czy jest w bazie wiersz gdzie 'Numer'=12345 i 'operacja'='Zmiana' ? Z tym że jest kilka wierszy gdzie 'Numer'=12345. ..

    0
  • #10 06 Lut 2018 09:09
    Damian7546
    Poziom 21  

    dzięki za pomoc

    0
  • #11 06 Lut 2018 09:09
    Damian7546
    Poziom 21  

    Problem rozwiązany za pomocą dwóch zapytań.

    0