Polecenie select i warunek where z pliku

0

Dzień dobry,
potrzebuje pomocy jak zrobić zapytanie w Mysql,
Problem jest taki: w pliku cyferki.txt mam zapisane powiedzmy ciągi cyfr np.:
73625
72635
19362

następnie chcę by skrypt odpytywał bazę:
select * from pozycja where id=''73625;
i tak w petli te numerki w pliku, a wynik zapisał do pliku tekstowego.
ciagi cyfr w pliku są losowe.
I jeszcze pytanie: czy plik cyferki.txt musi byc jakoś specjalnie wygenerowany?\

0

jak i czym się łączysz do bazy? Albo inaczej - z jakiego programu chcesz te zapytania wykonać?

1

Najprościej? Uruchom sobie Notepad++ i daj ctrl+f zakładka zastąp w wyszukaj wpis:
\r\n
w zastąp wpisz
\r\nselect * from pozycja where id=

i gotowe masz w pliku zamiast wartości selecty z wartościami

druga opcja bardziej złożona to import pliku do bazy:
https://phoenixnap.com/kb/import-csv-file-into-mysql

0

następnie chcę by skrypt odpytywał bazę:

Ale jaki skrypt? W czym napisany? Jak nie masz wybranego to może ten bardzo elegancki język programowania :P

0

do bazy łączę się mysql workbench, wersja mysql 5.538
w tym pliku cyferki.txt jest kilkaset ciągów cyfr. Chciałbym by mysql zrobił to z automatu

0

Nie kojarzę, zęby Workbench miał takie narzędzia, ale może mnie ktoś poprawi.
Ale uściślijmy: potrzebujesz programu(skryptu), który ten plik przetworzy i wypluje zapytania, czy potrzebujesz bardziej programu, który sam wyśle te zapytania łącząc się bezpośrednio z bazą danych?

0

Bardziej chodziło mi o to czy można w zapytaniu mysql, wrzucić pętlę w której podmienia się wartości id

1

Jak masz dostęp do serwera to możesz spróbować czegoś takiego https://stackoverflow.com/questions/21253704/how-to-save-mysql-query-output-to-excel-or-txt-file.
Najpierw ładujesz plik do bazy łączysz te dane z interesująca cię tabelką (nie wiem jak to zrobić w Workbanch, ale możesz zapytać o to Googla) i potem wyniki zapisujesz do pliku. Jak potrzebujesz te dane w osobnych plikach to potrzebujesz zrobić kawałek skryptu żeby generować odpowiednie zapytania i nazwy plików.
Jak nie masz dostępu do serwera to powstaje wziąć np Python i naskrobać kawałek kodu, który wczyta plik, odpali odpowiednie zapytania a wyniki zapisze do pliku.

0

@poznajebazy: Da się.

0

@UglyMan skomplikowane :) z tym zapisem do bazy ok, ale problem będzie z wygenerowaniem zapytań

@Sarrus źle ująłem, chodziło mi o zapytanie

1

@poznajebazy: No to należy rozważyć czy nie lepiej przenieść wątek do Ogłoszenia drobne i zlecić to komuś za parę stówek niż babrać się z tym przez dwa dni.

0

@UglyMan czas to ja na to mam, staram się przy okazji czegoś nauczyć

2
  1. Zrób sobie tabelkę CYFERKA z jednym atrybutem ID
  2. Załaduj tam zawartość pliku cyferki.txt
  3. Użyj joina : select p.* from pozycja p join cyferka c on p.id=c.id;
  4. Wynik zapytania zapisz do pliku

Randomowy link: https://phoenixnap.com/kb/import-csv-file-into-mysql

1

@poznajebazy: Jak masz dostęp do serwera zacznij od przejrzenia dokumentacji MySQL w obszarze procedur.
Jak nie to od nauki Pythona, potem łączenie z bazą z pytona i odczyt i zapis pliku.

0

@yarel już przeglądałem ten link od @woolfik
@UglyMan wkraczam na ścieżkę programowania bo mam trochę czasu. Dziękuję za porady

0

Możesz jeszcze wciągnąć to jako CSV. Coś jak tutaj: https://stackoverflow.com/questions/11429827/how-to-import-a-csv-file-into-mysql-workbench

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';

Jedyne co musiałbyś zrobić to dodać kolumnę w pierwszej linii. Nie wiem czy przydatne, musisz obadać.

0

https://dev.mysql.com/doc/refman/8.0/en/load-data.html

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;

Tworzysz tabelę na te numery, uruchamiasz instrukcję która ładuje numery z pliku do tabeli.

Następnie uruchamiasz zapytanie SQL z użyciem JOIN

0

@TomRZ: ok
Dziękuję wszystkim. Będę kombinował. Wrzucę do tabelki pliczek. Dostęp do serwera mam

1 użytkowników online, w tym zalogowanych: 0, gości: 1