Topic: Skaičiaus formatavimas select'e
select skaičius from lenta;
Kaip gauti rezultatą 0001
mikrosofte rašyčiau select format(skaičius,"0000") from lenta; , bet mysq'e taip netinka.
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → SQL užklausos ir duomenų struktūros → Skaičiaus formatavimas select'e
select skaičius from lenta;
Kaip gauti rezultatą 0001
mikrosofte rašyčiau select format(skaičius,"0000") from lenta; , bet mysq'e taip netinka.
Kodėl netinka?
http://dev.mysql.com/doc/refman/5.0/en/ … ion_format
a) naudoti LPAD() ir RPAD() funkcijas:
mysql> SELECT LPAD(4,10,'0');
+----------------+
| LPAD(4,10,'0') |
+----------------+
| 0000000004 |
+----------------+
1 row in set (0.00 sec)
b) pasigaminti kažką labiau tinkamo:
CREATE FUNCTION `FormatNumber`(number CHAR(50), number_precision INT) RETURNS char(50) CHARSET utf8
BEGIN
SET @Repeat = number_precision -LENGTH(number);
SET @x = 0;
IF (@Repeat>0) THEN
REPEAT
SET @x = @x + 1;
UNTIL @x >= @Repeat
END REPEAT;
END IF;
RETURN CONCAT(REPEAT('0',@x), number);
END
Naudojimas:
SELECT FormatNumber(Number, Number_of_places) ...
PHP ir MySQL → SQL užklausos ir duomenų struktūros → Skaičiaus formatavimas select'e
Powered by PunBB, supported by Informer Technologies, Inc.