Apr
19
2011
Problem:
Prilikom spajanja na mysql bazu php javlja grešku u konekciji:
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file
Rješenje:
Updejtamo stari password istim takvim pomoću sljedeće naredbe:
UPDATE mysql.user SET Password=PASSWORD('lozinka') WHERE User='korisnik';
FLUSH PRIVILEGES;
no comments | posted in MYSQL Database Development, PHP
Apr
14
2011
Problem:
Query nam vraća null, a nama treba nula
Rješenje:
1. IFNULL
SELECT IFNULL(fieldName, 0) as fieldName FROM...
2.COALESCE
SELECT COALESCE(fieldName, 0) as fieldName FROM...
COALESCE je zanimljiv iz još jednog razloga. Recimo da u bazi osoba imamo osim imena i prezimena također i podatke o službenom i privatnom telefonu i mobitelu.
Budući da COALESCE traži prvu pojavu vrijednosti koja nije null na sljedeći način možemo pretraživati više polja:
COALESCE(sluzbeni_telefon, privatni_telefon, službeni_mobitel, privatni_mobitel, ‘Nema kontakt telefona’)
Ako postoji službeni telefon selektirat će ga, a ako ne prelazi na privatni.
Ako ni on ne postoji prelazi na službeni mobitel itd…
ako ništa od navedenog ne postoji ispisuje ‘nema kontakt telefona’…
Kako riješiti problem praznog stringa kod funkcije COALESCE ?
Evo jednog od rješenja: http://systasis.biz/blog/?p=89
no comments | posted in MYSQL Database Development
Apr
12
2011
Problem:
selektirane podatke poredati (ORDER BY) kao da su brojevi iako je samo dio vrijednosti broj
npr. recimo da se polje prema kojem želimo poredati rezultat zove “mojeMijesanoPolje”
pero2peric
pero3peric
pero1peric
treba biti:
pero1peric
pero2peric
pero3peric
Rješenje:
Iako postoji i drugih rješenja ovo mi se čini baš “šeretski”…
1. napravimo funkciju kao što to kaže dobra duša na http://bendynet.com/it/ms-sql-functions-to-parse-int-or-alpha-characters/
<code>SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[parseInt]
(
@string VARCHAR(8000)
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @IncorrectCharLoc SMALLINT
SET @IncorrectCharLoc = PATINDEX('%[^0-9]%', @string)
WHILE @IncorrectCharLoc > 0
BEGIN
SET @string = STUFF(@string, @IncorrectCharLoc, 1, '')
SET @IncorrectCharLoc = PATINDEX('%[^0-9]%', @string)
END
SET @string = @string
RETURN @string
END</code>
2. primijenimo:
... ORDER BY dbo.parseInt(mojeMijesanoPolje) ASC
3. Još to nije to, zar ne!? S ovim gore samo smo izvukli broj iz stringa ali i taj broj je još uvijek string. Rješenje je CAST:
... ORDER BY CAST(dbo.parseInt(mojeMijesanoPolje) AS int) ASC
no comments | posted in MSSQL Database Development
Apr
10
2011
Vjerojatno i mali šmrkljavi Miro iz 6-tog B zna da UPDATE tablice bez primary key-a redovno dovodi do nepredviđenih i nimalo poželjnih rezultata.
Izgleda da nekima ni 7 godina prakse nije dovoljno da to nauče!
Dakle, kakav kreten!
Al dobro… rano je…
no comments | posted in MYSQL Database Development
Apr
6
2011
Problem:
Kako saznati koji se podaci u koloni pojavljuju više od jednom
Rješenje:
SELECT * FROM tableName GROUP BY fieldName1, fieldName2 HAVING COUNT(*)>1
no comments | posted in MYSQL Database Development
Apr
5
2011
Problem:
Napraviti query gdje je vrijednost polja LIKE vrijednost drugog polja
Rješenje:
SELECT fieldName1, fieldName2 FROM tableName WHERE fieldName1 LIKE CONCAT('%', fieldName2, '%')
no comments | posted in MYSQL Database Development
Apr
5
2011
Problem:
Query nam vraća null, a nama treba nula
Rješenje:
Select coalesce(fieldName,0) as broj
ili
Select (case when fieldName is null then 0 else fieldName end)) as broj
ili
Select (IsNull(fieldName,0)) as broj
no comments | posted in MSSQL Database Development
Apr
5
2011
Problem:
Potrebno je maknuti ili zamijeniti karakter (ili više njih) unutar SQL query-a
Rješenje:
SELECT REPLACE(fieldName,'x','') AS rezultat FROM tableName
Ovo daje vrijednost polja fieldName gdje je slovo x zamijenjeno ničime, tj. x je izostavljen
SELECT REPLACE(fieldName,'x','y') AS rezultat FROM tableName
Ovo daje vrijednost polja fieldName gdje je slovo x zamijenjeno slovom y
no comments | posted in MSSQL Database Development