@destyl: Jak to Twoja baza, to przestaw debilny latin1swedish na globalny utf8; wtedy każda nowa tabela będzie miała domyślnie utf8 w kolumnach tekstowych i nie będziesz musiał martwić się o ciągłe poprawianie
@IrvinTalvanen: a nie wiem, ja sie tym na produkcji nie zajmuje szczesliwie. To po prostu esencja srodowiska - zmienic cos, co bylo niezmieniane od lat, jak teraz czytam tylko dla kilku wybranych podwersji (From MySQL 5.7.4 to 5.7.10,), ktora nie gwarantuje niczego (bo i tak mozesz zalogowac sie tym haslem i je zmienic na dokladnie to samo...).
Mam taki problem niby banał ale cały dzień gdybam i nic.

Tabela1 - Produkty
id, options1, options2, options3
-----------------------------------------
1, 'a', 'b', 'c'
2, 'x', 'b', 'c'
3, 'c', 'b', 'd'
4, 'z', 'b', 'c'

Tabela2 - Własności Produktu
id, productid, name
1, 1, "Title"
2, 1, "Color"
3, 2, "Title"
4, 3, "Title"
5, 4, "Title"
6, 4, "Color"
7, 4, "Size"
// w tej tabeli jest maksymalne 3 wiersze
@DONwykopek: SELECT p.ID,
p.options1,
(
SELECT wp.name
FROM WlasnosciProduktu AS wp
WHERE wp.productid = p.id
LIMIT 1
) AS wlasnosc1,
p.options2,
(
SELECT wp.name
FROM WlasnosciProduktu AS wp
WHERE wp.product
id = p.id
LIMIT 2, 1
) AS wlasnosc2,
p.options3,
(
SELECT wp.name
FROM WlasnosciProduktu AS wp
WHERE wp.product_id = p.id
LIMIT 3, 1
) AS wlasnosc3,
FROM Produkty AS p
@DONwykopek: ogólnie to się nazywa również pivotowanie, ale tym zapytaniem co Ci dałem da się to zrobić i pivotowanie jest możliwe w MySQL. Przy okazji dało to radę zrobić przynajmniej na 3 sposoby:
- podzapytania
- odpowiednie warunki w JOIN
- pivot
Witajcie mirki.
Moje zapytanie SQL zwraca mi błędny wynik. Mam w bazie danych 3 tabele: user, product, vote. Chcę z tabeli pobrać wszystkich użytkowników wraz z ich produktami i ilością głosów oddanych na każdego użytkownika. W tym celu napisałem taki SQL:
SELECT
u.id,
v.id,
p.id,
COUNT( v.id ) AS votes
FROM
user AS u
JOIN
vote AS v ON v.record_id = u.id
LEFT JOIN
product AS p ON p.user_id = u.id
WHERE
#mysql #sql #programowanie

Hej, próbuję zrobić bazę jak na załączonym obrazku gdzie np. Servings.kcal to automatycznie generowane pole pobierające FoodItems.kcal rodzica i przeliczające kalorie z takich na 100g/100ml, do takich ile podano w Servings.units. I tak wygląda SQL:

CREATE TABLE IF NOT EXISTS DietDB.Servings (
id INT UNSIGNED NOT NULL,
FoodItem_id INT UNSIGNED NOT NULL,
name VARCHAR(255) NOT NULL,
units DOUBLE UNSIGNED NOT NULL,
kcal INT GENERATED ALWAYS AS (SELECT
Dijuna - #mysql #sql #programowanie

Hej, próbuję zrobić bazę jak na załączonym obr...

źródło: comment_HHv16ex2yFRF4sUdn46MzF0MKXmGnS0F.jpg

Pobierz
@piotrekkk2
chociażby przedzialami? w ogóle fakt, że otrzymasz datę rezerwacji w tabeli gdzie jest pokój jest już dziwny, chyba że schemat wygląda inaczej.
w takiej sytuacji jak masz, to mozesz chyba policzyć liczbe dni w przedziale, zrobić query dla tego przedziału i sprawdzić czy liczba wyników jest zgodna z liczbą dni w przedziale.

ale moim zdaniem masz zły schemat bazy.
@piotrekkk2: chyba, że to jest tak, że zazwyczaj pokoje są zajęte i wprowadzasz dni, w których pokój jest do wynajęcia?

wtedy możesz policzyć liczbę dni pomiędzy zadanymi datami i zamiast sprawdzać czy większe od zera dajesz czy większe lub równe liczba wymaganych dni w podanym przedziale; jeśli tak, to pokój można wynająć
próbowałem już wszystkie


@HiHiHiD: niestety nie mamy szklanej kuli, by wiedzieć co to oznacza, ale wygląda na to, że serwer webowy nie widzi bazy danych (może firewall, może brak dnsów - spróbuj po ip, a może coś innego)
@HiHiHiD: refused sugerowałoby firewalla. Nie jest to ani błąd adresu, ani autentykacji.
Upewnij się, że otwarłeś port 3306, czy na którym tam Ci to stoi. Jeśli to Twój prywatny świeży linux, to wyłącz jeszcze ewentualnie SELinuxa na próbę: setenforce 0
Mirki, proszę o pomoc z #mysql, #sql, #bazadanych. Mam problem z porównaniem argumentu wejściowego (rola) z wybraną wartością (admin lub user). Jak poprawnie poprawić ten fragment kodu?

delimiter //
CREATE PROCEDURE
Proc(IN rola VARCHAR(5), IN login VARCHAR(50), IN haslo VARCHAR(64))
BEGIN
IF STRCMP(
rola,'admin') = 0 THEN
INSERT INTO
Administratorzy (idUzytkownika, login, haslo, rola) VALUES (NULL, login, haslo, 'admin');
IF STRCMP(
rola
Siemanko mirki,
Jako jeden z punktów mojej magisterki mam do wykonania całkiem prosty program, który będzie pobierał pliki .csv (z dużą ilością danych), a następnie wykona operacje porównania danych ze sobą i wypluje plik .csv, który będzie spełniał funkcję raportu. Mam 2 koncepcje i nie wiem, która będzie szybciej wykonywać operacje na danych zawartych w plikach csv. Dodam, że narzucono mi C# wraz z MySQL lub sam C#.
Czy lepiej utworzyć bazę
Mirki! Proszę o pomoc z zakresu #php #mysql
Domyślam się, że nie jest to nic trudnego, ale ja nie miałem z tym nigdy do czynienia, kierunek studiów absolutnie z tym niezwiązany, ale muszę wybrnąć z problemu i tutoriale nic nie pomagają. Phpmyadmin, z bazy danych o wypadkach na drogach mam nr drogi i datę zdarzenia (między innymi). Muszę wypisać ile wypadków zdarzyło się na danej drodze w kolejności malejącej. Wypisać mi się
@maxel111: Jeśli chcesz tylko dla konkretnego miesiąca to np. tak:

SELECT nr_drogi,COUNT(*) AS cnt FROM Pomorze_wypadki
WHERE MONTH(data_zdarz) = 1
GROUP BY nr_drogi
ORDER BY cnt DESC";

Jeśli dla pewnego całego roku to tak:

SELECT nr_drogi,COUNT(*) AS cnt FROM Pomorze_wypadki
WHERE YEAR(data_zdarz) = 2016
GROUP BY nr_drogi
ORDER BY cnt DESC

Jeśli ile ogólnie było wypadków od początku to:

SELECT nr_drogi,COUNT(*) AS cnt FROM Pomorze_wypadki GROUP BY nr_drogi
ORDER BY cnt
Mirki mam pewien problem otóż mam dwa komputery połączone ze sobą kablem ethernetowym jeden z nich jest serwerem i ma adres 192.168.0.1 a drugi 192.168.0.2. Chce zrobić tak aby jeden z nich był serwerem bazy danych MySQL (Workbench) a drugi klientem który łączy się z bazą. Niestety próbowałem dziś wszelakich konfiguracji i niestety nie udało mi się osiągnąć poprawności działania.. może ktoś miał z tym do czynienia i podzieli się sugestiami? #
#mysql

Pomocy bo już myśleć nie potrafię ;-)

Mam dwie bazy:
Samochody - id, marka itd.
Rezerwacje, m.in. idsamochodu, datastart, datakoniec

jeden samochód może mieć wiele rezerwacji, wiadomo....

Chcę zarezerwować samochód - znam datę start i koniec.
Jak wyciągnąć z bazy samochody, które są dostępne w danym okresie?

Czyli na start coś takiego:

SELECT data_start, data_koniec FROM samochody s left JOIN rezerwacje r on s.id=r.id_samochod
Ale co potem? co
Mircy mircy. Potrzebuje czysto koncepcyjnego podejścia, może innego niż moje. Posiadam bazę pracowników i ich dane na każdy dzień (czas pracy, zrobione taski itd.) Trzymam to wszystko w mysql, porozrzucane na każdy miesiąc w odzielnej tabeli. I teraz chcę stworzyć panel coś w stylu Google Analytics (porównania z poprzednim miesiącem, tygodniem itd.).

Na chwilę obecną korzystam z charts.js. Jak najlepiej Waszym zdaniem to ugryźć? W sensie gdy użytkownik będzie chciał sobie wyswietlić
@marcinzwwa:

o kurde no to grubo. kolego czy Ty masz pojęcie jak działają bazy danych i do czego służą? podstawowym błędem koncepcyjnym jest to co robisz, usuń to i zacznij od nowa lub napisz skrypt migracyjny który przemieli stare dane i zapisze jako nowe.

stwórz sobie tabelkę userstats o polach: id , user_id , date (typ DATE), data_max , data_tasks , data_count.
indeksy ustaw na user_id , date oraz
@EIonMusk: Ej no, wykopowi programiści za 15k nic nie wiedzą? ( ͡° ʖ̯ ͡°)

Już wiem że nie obsługuje większości konwerterów geometrycznych jak STGeomFromEWKB,
ST
GeomFromGML, STGeomFromGeoJSON, STGeomFromKML i nie prędko zacznie bo sugestia ich zaimplementowania ma niski priorytet i wisi od 2014 roku.

Więc obszedłem problem konwertując GeoJsona do WKT w php.
jakieś porównywanie indexów


@msilent: Kiedyś na własne potrzeby sprawdzałem jak się zachowują tu popularne darmowe bazy/silniki: MyISAM, InnoDB i PostgreSQL (współcześnie można by pewnie tu coś aktualniejszego podrzucić), i różnice jak radzą sobie z wydajnością, właśnie w przypadku jednoczesnego indeksowania dodawanych danych, była ogromna.

Te dane, na których pracowałem to była próba pobierania informacji o wszystkich nowych aukcjach allegro, tak aby nie działo się to wolniej niż te aukcje się pojawiały.