db_products
tavolo:Un modo semplice per generare una colonna del nome slug dalla colonna del nome?
| ID | Name |
| 40 | Foo Bar!~~~~ |
voglio generare una colonna Nome slug:
| ID | Name | Slug_Name |
| 40 | Foo Bar!~~~~ | foo-bar |
può questo essere effettivamente fatto tramite SQL? O dovrei scrivere uno script usando una lingua diversa?
EDIT: sto generando lumache in PHP utilizzando questa funzione:
function toSlug($string,$space="-") {
if (function_exists('iconv')) {
$string = @iconv('UTF-8', 'ASCII//TRANSLIT', $string);
}
$string = preg_replace("/[^a-zA-Z0-9 -]/", "", $string);
$string = strtolower($string);
$string = str_replace(" ", $space, $string);
return $string;
}
Finora le mie competenze SQL abbastanza semplice.
ALTER TABLE db_products ADD Slug_Name VARCHAR
Come faccio a ciclo attraverso ogni riga e impostare Slug_Name = toSlug(Name)
ma in SQL?
Cosa hanno hai provato fino ad ora? MySQL ha diverse funzioni di manipolazione delle stringhe. Potresti voler sostituire replace(), lower(), trim() e regexp() in modo specifico. – Jrod