Keresés

Részletes keresés

hellsing Creative Commons License 2010.06.11 0 0 1798
Erre nem gondoltam, mert magát a sakila db-t simán kitörölte. Vagy legalábbis levette a listáról.

Köszönöm!
Előzmény: NevemTeve (1797)
NevemTeve Creative Commons License 2010.06.08 0 0 1797
van egy '.sakila-db' nevű könyvtár, amit nem tud törölni, mert nem üres.
Előzmény: hellsing (1796)
hellsing Creative Commons License 2010.06.08 0 0 1796
phpMyAdminban nagytakarítanék, és van egy üres adatbázis, ami nem emlékszem, hogy mikor/hogyan került oda, de a neve:

#mysql50#sakila-db

Nem tudom törölni. A hibaüzenet:

#1010 - Error dropping database (can't rmdir '.sakila-db', errno: 17)

Hogy lehet eltüntetni?

Volt egy Sakila is (MySQL demo adatbázis), az simán törlődött.
Mayalina Creative Commons License 2010.06.01 0 0 1795

Sziasztok!

 

Tegnap telepítettem az Apache 2.2.-t, meg a PHP 5.3.2.-t sikeresen.

A Mysql 5-tel viszont meggyűlt a bajom.

A weblabor utasításait követtem amennyire lehetett (ugyanis 2004-es a bejegyzés), és a szerver fut ugyan, de a mysql administration kifogott rajtam.

Miután rootként bejelentkeztem, létre akartam hozni egy usert, hogy jogokat adjak neki, de nem sikerül. A végén ilyen hibaüzit dob ki:

Error while storing the user information. The user might have been deleted. Please refresh the user list.  És emellé még egy dos ablak is felugrik, amiben egy üzenet van, aztán villog  kurzor, de beírni emmit nem enged, viszont itt is van egy üzenet: Message: save user: can't retrieve user information.

 

A félig-meddig létrehozot usert törölni nem tudom, és innentől meg vagyok lőve. Nem tudom, mit kéne tennem...

Aki tud, adjon tanácsot, kérem!

digicat Creative Commons License 2010.05.20 0 0 1794
"Te ezek az adatokat vszleg így rendeznéd sorba"
Ha számok akkor miért stringként vannak tárolva?
Ha vegyes akkor pedig célszerű egy sorrend mezőt tárolni és az eredeti érték helyett aszerint rendezni.
Ezt a mezőt csak egyszer kell kiszámolni, mikor változik az eredeti mező értéke, az ORDER BY CONVERT(INT,strnumber) módszerrel ellentétben, mely minden lekérdezéskor újraszámolja.

"Melyik foglal kisebb helyet, string (pl. varchar) vagy szám (bigint)?"
Valóban a hely számít, vagy a sebesség? _Szerintem_ számokat gyorsabban indexel és keres egy adatbázis mint karaktereket, de nem ismerek hivatalos statisztikát.
A szükséges tárhelyet össze lehet hasonlítani, hiszen a varchar és a bigint mérete is ismert.

Vonalkód:
Ha szám akkor tárold számként. Dátumot dátumként, és így tovább.
Előzmény: hellsing (1792)
hellsing Creative Commons License 2010.05.20 0 0 1793
<meghajlás /> Köszönöm, megoldottad! :-)

Az adatok Google Tesseract-tal digitalizált, nyomtatott anyagból vannak, és a nagy "i"-k helyére kis "l" betűk kerültek. Ez egész eddig nem derült ki, mert mindenhol olyan betűtípusokkal vannak megjelenítve az adatok, ahol nincs különbség a kettő között.

A SELECT HEX azonnal mutatta, hogy hol a hiba. Most már csak ki kell listáznom az összes olyan mezőt, amiben van "l" betű és manuálisan átírni nagy "i"-re, ahol kell.

Pár száz tétel, nem nagy dolog :-S
Előzmény: NevemTeve (1790)
hellsing Creative Commons License 2010.05.20 0 0 1792
Nem, a természetes rendezés az, ahogy stringeket egy ember rendezne. Példa:

Te ezek az adatokat vszleg így rendeznéd sorba:

30888
40777
143555
145666

A MySQL viszont így:


143555
145666
30888
40777

...mert stringről van szó. Erre, ha tisztán str-ként tárolt számokról van szó, egyszerű megoldás ez:

SELECT * FROM feld ORDER BY CONVERT(INT,strnumber) ASC

Nálam viszont ez nem működik.

Ha már itt tartunk, milyen adatformátumban érdemes egy 13-15 számjegyből álló vonalkódot tárolni, amivel matematikai műveleteket nem kell végezni, indexelni viszont kell. Melyik foglal kisebb helyet, string (pl. varchar) vagy szám (bigint)?
Előzmény: digicat (1791)
digicat Creative Commons License 2010.05.18 0 0 1791
Lehet tévedek, de a natural ordering nem az, amikor nincs explicit rendezés, hanem a fizikai tárolás sorrendjében kapod vissza a sorokat?

A nev+0 eredménye szöveggel kezdődő mezők esetén 0 lesz, számmal kezdődő mezők esetén a szám, ezért lesz az a sorrend amit látsz, gyakorlatilag ahogy rögzítve lettek az adatok.
Próbáld ki:
SELECT nev + 0, tabla.* FROM tabla ORDER BY nev + 0 ASC

A SELECT * FROM tabla ORDER BY nev ASC abban a sorrendben adja vissza a sorokat ahogy szeretnéd (Server version: 5.0.89, nev: varchar, utf8_general_ci), ha nálad nem akkor lehet vannak nem látható karakterek a mezőkben.

Exportáld az adatokat és nézd meg hexában mi van a táblában.
Előzmény: hellsing (1789)
NevemTeve Creative Commons License 2010.05.18 0 0 1790
Akkor ott valami nem nyomtatható karakterek is vannak... nézd meg hexásan (SELECT HEX (mezőnév)).
Előzmény: hellsing (1789)
hellsing Creative Commons License 2010.05.18 0 0 1789
Ezek az adatok egy oszlopban vannak. A többi oszlopnak nincs szerepe a rendezésben.

A MySQL honlapján néztem a "natural ordering" szakaszt, ott láttam ezt a technikát.
Előzmény: digicat (1788)
digicat Creative Commons License 2010.05.17 0 0 1788
Miért gondolod, hogy stringhez 0-t hozzáadva valami értelmes történik?

Így próbáltad?
SELECT * FROM tabla ORDER BY nev ASC, második_oszlop asc, harmadik_oszlop asc
Előzmény: hellsing (1787)
hellsing Creative Commons License 2010.05.17 0 0 1787
Megnézem az indexeket, köszi.

Addig is... :)

Ha "SELECT * FROM tabla ORDER BY nev ASC", ez az eredmény:

123
123 Foo Bar
123 Foo
456
ABC
DEF

Hogy lehet elérni, hogy

123
123 Foo
123 Foo Bar
456
ABC
DEF

legyen? Próbáltam ezt:

SELECT * FROM tabla ORDER BY nev + 0 ASC

...de ez ezt adja:

ABC
DEF
123
123 Foo Bar
123 Foo
456

Ami rosszabb, mint az első eredmény... :(
Előzmény: digicat (1786)
digicat Creative Commons License 2010.05.15 0 0 1786
Indexek rendben vannak?
Ha igen és mégsem használja lekérdezéskor akkor van Index Hint.
Előzmény: hellsing (1785)
hellsing Creative Commons License 2010.05.15 0 0 1785
Köszönöm, ennek alapján meg tudtam csinálni, de inkább úgy, hogy:

SELECT id, termek.nev, SUM(mennyiseg) AS keszlet
FROM (
( SELECT id, termek.nev, SUM(mennyiseg) AS keszlet
FROM beszerzes, termekek
WHERE beszerzes.id = termek.id
GROUP BY id)

UNION

( ugyanez még 1x, de eladásra) AS raktarkeszlet
GROUP BY id ASC
HAVING ...
ORDER BY...


Ez csak vázlat, valójából hosszabb és összetettebb a lekérdezés.

A rendszeren lesz még sok csiszolnivaló, mert egy olyan gép, ami egy sima "SELECT * FROM table" lekérdezést 0,0002s alatt összedob, az az enyémen 0,18s-et gondolkodik. Most még mindegy, hogy másodpercenként öt vagy ötezer lekérdezés futhat le, de ha akkora leszek, mint az amazon... ;o)
Előzmény: NevemTeve (1784)
NevemTeve Creative Commons License 2010.05.10 0 0 1784
Valami ilyesmire gondolsz?

SELECT fo.termekid AS id, fo.termeknev AS nev, vett-eladott
FROM termek fo,
  (SELECT SUM (mennyiseg) AS vett
    FROM beszerzesek be
    WHERE be.termékid=fo.termékid),
  (SELECT SUM (ki.mennyiseg) AS eladott
    FROM eladasok ki
    WHERE ki.termékid=fo.termékid)
WHERE ... AND vett-eladott>0;
Előzmény: hellsing (1783)
hellsing Creative Commons License 2010.05.09 0 0 1783
Üdv, kéne egy kis segítség.

Eddigi legbonyolultabb, lekérdezésem kiadja két tábla azonos azonosítójú rekordjaiban lévő "quantity" mezők összegét. Az egyik tábla a beszerzés (stock) a másik az eladás (sales), a többi most nem érdekes. A táblaszerkezetet örököltem, ha majd minden jól működik, lesz időm racionalizálni.

Tehát a lekérdezés:

SELECT models.bar_models, cars.name_cars, colors.name_colors, (
SELECT sum( quantity )
FROM stock
WHERE stock.bar_models = models.bar_models)
-
(SELECT sum( quantity )
FROM sales
WHERE sales.bar_models = models.bar_models )
AS inStock
FROM models, cars, colors
WHERE models.id_cars = cars.id_cars
AND models.id_colors = colors.id_colors
AND inStock >0

A problémám az "AS inStock" és az "AND inStock > 0" részekkel van. Szeretném, ha a listában nem jelennének meg azok a sorok, ahol minden beszerzett tétel el van adva, azaz "inStock = 0", de a módszer, amit próbáltam, nem működik. Hogy lehet megcsinálni?
crockl Creative Commons License 2010.05.05 0 0 1782
talan ird le mit, mivel hogy csinaltal. tabla strukturat, utasitasokat. Amit mondasz nyilvan nem igaz, abbol a szempontbol hogy user error kell legyen nalad.
Előzmény: zeuszslezi (1781)
zeuszslezi Creative Commons License 2010.05.04 0 0 1781
Sziasztok!

Kezdő vagyok még az sqlben, és most a fulltext kereséssel ismerkedem.

A problémám a következő: Van egy táblám 8 oszloppal, ebből két oszlopnál szeretném alkalmazni a fulltext keresést, de ha feltöltöm az adatbázist nem muködik a keresés, ha törlöm ezt a két oszlopot majd ismét kreálom és adatot is felviszek a cellába, akkor működik, de ha ezt ismét törlöm és a nullárol szeretnék adatot felvinn és működjön a keresés akkor nem működik, csak ha ujra végrehajtom a fentieket.

Elég idegesítő:s van erre valami megoldás?
crockl Creative Commons License 2010.03.29 0 0 1780
ha vannak foreign key-ek akkor van eselyed:) ha nincsenek akkor egyeszeruen nezd vegig, tobbnyire user_id lesz a kapcsolat a users tablaval, vagy hasonlo. illetve nezd meg mitol hal el a forum, milyen query-k nem adnak eredmenyt
Előzmény: csigusz0 (1779)
csigusz0 Creative Commons License 2010.03.29 0 0 1779
Hello!

A segítségetek kérném picit. Van egy phpbb alapú fórumom, amiben felhasználókat töröltem volna adatbázis oldalon. Odáig jutottam, hogy töröltem a phpbb_users táblából őket, ettől viszont elhalt az egész fórum, csak adatbázis oldalról érem el. Mint kiderült további kapcsolataik is voltak, de azt egyelőre nem sikerült kiderítenem, hogy melyik táblában. Van olyan parancs mysql alatt, ami gyakorlatilag egy konzisztencia ellenőrzés, és törli az inkonzisztens adatokat?

Köszi!
digicat Creative Commons License 2010.03.08 0 0 1778
Megkerdezed a megrendelotol.
Előzmény: NevemTeve (1777)
NevemTeve Creative Commons License 2010.03.08 0 0 1777
Hogyan lehetne 'összefésülni' teljesen független dolgokat?
Előzmény: digicat (1776)
digicat Creative Commons License 2010.03.03 0 0 1776
Azért jó egy lekérdezésben, mert így nem kell utólag összefésülni az eredményeket.
Előzmény: NevemTeve (1772)
digicat Creative Commons License 2010.03.03 0 0 1775
union-nal?
select id, sapkanév as név from sapkák where kiemelt = 1
union
select id, név from mezek where kiemelt = 1
union
select id, valami as név from cipők where kiemelt = 1
Előzmény: GergoBudapest (1773)
GergoBudapest Creative Commons License 2010.03.02 0 0 1774
Hali!

próbáld meg ezt.

<?php
header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
?>
Előzmény: paranoribremen (1768)
GergoBudapest Creative Commons License 2010.03.02 0 0 1773
mert a főnök szava szent.:) de már megoldottam.
Előzmény: NevemTeve (1772)
NevemTeve Creative Commons License 2010.03.02 0 0 1772
És pontosan miért kellene három teljesen független lekérdezésnek egy utasításban lennie?
Előzmény: GergoBudapest (1770)
GergoBudapest Creative Commons License 2010.03.02 0 0 1771
azt elfelejtettem leírni hogy a táblákban nem egyezik meg az oszlopok száma
GergoBudapest Creative Commons License 2010.03.02 0 0 1770
Üdv.
Egy számomra fontos kérdésem lenne. Kaptam egy adatbázist. Külön táblában vannak a cipők a sapkák és a mezek. mindegyik táblában mindegyik terméknél meg lehet adni hogy kiemelt-e vagy sem. Azt szeretném megtudni, hogy egy lekérdezéssel, hogy tudom megoldani, hogy lekérem mindhárom táblából egyszerre a kiemelt termékek id-ját, nevét.

A segítséget előre is köszönöm.
NevemTeve Creative Commons License 2010.02.26 0 0 1769
Nincs pont a billentyűzeteden?
Kezdetnek ezt olvasd el: Ékezetes FAQ webművészek számára
Előzmény: paranoribremen (1768)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!