как вывести из бд только первые 19 символов

Есть запрос который вывод из базы данных 25 популярных по скачиванию песен,

запрос :

function generate_pop_mp3()
{
global $bytes,$WWW;
$sql = @mysql_query("SELECT * FROM `m3_mp3` WHERE `active` = '1' ORDER BY `count` DESC LIMIT 25");
if ($sql && @mysql_num_rows($sql)>0){
$i=0;$to_file="";
while ($row = @mysql_fetch_array($sql, MYSQL_ASSOC)){
$i++;
$number=$row['id'];
if ($i!= 15){$to_file.="



".unsafe_str($row['size'])."

";}
}}
$fp = fopen ("./../html/top.html", "w+");
fwrite ($fp, $to_file);
fclose ($fp);
}

как сделать, что бы выводилось не полностью "артист - песня" например "Валерия Миладзе - Золотая осень"
а так - "Валерий - Золотая з... " тоеть вместе с пробелом 19 знаков.
я просто лазил по гуглу, никак не могу найти подходящий код, точнее не могу выставить что б выводилось определенное колличество символов,
помогите плиииизззззз!

SELECT SUBSTR(поле, 0, 19) FROM table

$to_file.=" ".unsafe_str(substr($row['size'],0,19))." ";

SELECT SUBSTR(поле, 0, 19) FROM table - точно не правильно

иди на cyberforum точка ru
там тебя наставят на путь истинный

SELECT * SUBSTRING(`artist`, 1, 20) AS `artist`, - а кто, после * будет запятую ставить, и название используемого поля таблицы нужно изменить, например as `sub_artist`. Соблюдаф синтаксис и пробелы

ПРИМЕРНО ДОЛЖНО БЫТЬ ТАК:
$sql = @mysql_query("SELECT * , SUBSTRING(`artist`, 1, 20) AS `sub_artist` FROM `m3_mp3` WHERE `active` = '1' ORDER BY `count` DESC LIMIT 0, 25" );