Archívum ‘Adatbáziskezelés‘

 
 

MySQL trim függvény

A MySQL is van trim függvény, ami esetenként hasznos lehet. Alap esetben a függvényt meghívás után vissza adja szóközöktől megtisztított stringet:

SELECT TRIM('  szöveg   ');
//az eredmény 'szöveg' lesz

De ennél több van ebben a függvényben.
Továbbolvas…

MySQL replace függvény

A MySQL replace() függvényének ismerete sokszor hasznos lehet ha valamitől meg kell tisztítani az adatbázisban az adatokat, esetleg valamilyen szeparátort le kell cserélni.

Továbbolvas…

MySQL replace into

A MySQL replace into ugyanúgy működik mint az insert, azzal a kivétellel hogyha a táblában található egy sor ugyanazzal a Primary Key-el vagy Unique index-el, akkor először azt törli és utána illeszti be az új sort. Hasonló tehát az Insert into ….. on Duplicate Key Update művelethez.
Továbbolvas…

Mysql duplicate rows

Egy project alkalmával szembesültem a címben említett problémával. Adott volt egy adatbázis tábla melyben voltak duplikált sorok. A feladat ezeknek a soroknak a törlése volt. Első gondolatom egy temporary table megoldás volt, miszerint csinálok egy temp táblát abba egy selectel distinct -el a duplikációt jelző mezőn átrakom a recordokat és utána az eredeti táblát törlöm, a temp-et pedig átnevezem az eredeti nevére:

CREATE TABLE temp AS SELECT * FROM table1 GROUP BY FIELD;
DROP TABLE table1;
RENAME TABLE temp TO  table1;

Ez a megoldás teljesen jól működik és elvégzi a kivánt feladatot, de ha php-ból szeretnénk megvalósítani akkor ez három lekérdezés lesz, mert a multiple query az általában tiltva van. Ezért elkezdtem keresni egy elegánsabb megoldást és találtam is.
A dolog lényege hogy a táblánakt kétszer is használjuk a queryben egy alias-sal:

DELETE FROM table1
USING table1, table1 AS temp_table
WHERE (table1.id> temp_table.id)
AND (table1.FIELD=temp_table.FIELD)

A fenti lekérdezés megnézi hogy a két táblában (ami tulajdonképpen ugyanaz csak más néven) vannak olyan rekordok ahol a duplikált mező egyezik, viszont az azonosító nem(mert ha ez is akkor mindkét sort törölnénk), és törli ezeket.

Sqlite

Elofurdul hogy olyan tarhelyre kell fejleszteni ahol nincsen klasszikus adatbazis,de szuksegunk lenne ra. Van aki ilyenkor fajl-ban tarolja a szukseges adatokat de en azt nem tartom tul gyors es jo megoldasnak, foleg hogy php5 ota alapbol rendelkezesunkre all az sqlite is.
Továbbolvas…