Czy ktoś zna odpowiednik tego TSQL w języku MySQL?
Próbuję wielką literą każdego wpisu.
UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1))
+ SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))
mysql
string
capitalize
Broda
źródło
źródło
Vincents doskonała odpowiedź na wielkie litery Pierwszego Listu działa świetnie na pierwszej literze tylko kapitalizacja całej kolumny ciąg ..
ALE co, jeśli chcesz, aby pierwsza litera KAŻDEGO słowa była pisana wielką literą w ciągach kolumny tabeli?
np. „Abbeville High School”
Nie znalazłem odpowiedzi na to pytanie w Stackoverflow. Musiałem zebrać razem kilka odpowiedzi, które znalazłem w Google, aby zapewnić solidne rozwiązanie powyższego przykładu. Nie jest to funkcja natywna, ale funkcja utworzona przez użytkownika, na którą pozwala MySQL w wersji 5+.
Jeśli masz status użytkownika Super / Admin na MySQL lub lokalną instalację mysql na swoim komputerze, możesz stworzyć FUNKCJĘ (taką jak procedura składowana), która będzie znajdować się w Twojej bazie danych i będzie używana we wszystkich przyszłych zapytaniach SQL w dowolnej części db.
Funkcja, którą utworzyłem, pozwala mi używać tej nowej funkcji, którą nazwałem „UC_Words”, podobnie jak wbudowanych funkcji natywnych MySQL, dzięki czemu mogę zaktualizować całą kolumnę w następujący sposób:
Aby wstawić kod funkcji, zmieniłem standardowy separator MySQL (;) podczas tworzenia funkcji, a następnie przywróciłem go do normalnego po skrypcie tworzenia funkcji. Osobiście chciałem również, aby wyjście było w UTF8 CHARSET.
Tworzenie funkcji =
Działa to bardzo przyjemnie, wyświetlając pierwsze wielkie litery w wielu słowach w ciągu.
Zakładając, że Twoja nazwa użytkownika logowania MySQL ma wystarczające uprawnienia - jeśli nie, i nie możesz skonfigurować tymczasowej bazy danych na swoim osobistym komputerze, aby konwertować tabele, zapytaj swojego współdzielonego dostawcę hostingu, czy ustawi tę funkcję za Ciebie.
źródło
CHARSET utf8_general_ci
należy zmienić naCHARSET utf8
(przynajmniej w dniu 5.7)Illegal mix of collations for operation 'concat'
więc myślę, że po prostu napraw zestaw znaków lub usuń go i ustaw go jako domyślny.Można użyć kombinacji
UCASE()
,MID()
iCONCAT()
:źródło
SELECT CONCAT(UCASE(MID('TEST',1,1)),MID('TEST',2));
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_mid
źródło
http://forge.mysql.com/tools/tool.php?id=201
Jeśli w kolumnie jest więcej niż 1 słowo, to nie zadziała, jak pokazano poniżej. Wspomniany wyżej UDF może w takiej sytuacji pomóc.
A może ten pomoże ...
https://github.com/mysqludf/lib_mysqludf_str#str_ucwords
źródło
To działa dobrze.
źródło
źródło
UTWÓRZ FUNKCJĘ:
UŻYJ FUNKCJI
źródło
źródło
To powinno dobrze działać:
źródło
źródło
Powyższe wyrażenie może być użyte jako pierwsze litery DUŻE, a pozostałe jako małe.
źródło
Uso algo simples assim;)
źródło