Кто-нибудь знает эквивалент этого TSQL на языке MySQL?
Я пытаюсь использовать первую букву каждой записи с заглавной буквы.
UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1))
+ SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))
mysql
string
capitalize
Подбородок
источник
источник
Винсент отличный ответ на заглавную первую букву отлично работает для заглавных букв только первой буквы всей строки столбца ..
НО что, если вы хотите, чтобы первая буква КАЖДОГО слова в строках столбца таблицы была прописной?
например: "Средняя школа Абвиль"
Я не нашел ответа на этот вопрос в Stackoverflow. Мне пришлось сколотить несколько ответов, которые я нашел в Google, чтобы предоставить надежное решение для приведенного выше примера. Это не собственная функция, а функция, созданная пользователем, которую позволяет MySQL версии 5+.
Если у вас есть статус пользователя Super / Admin в MySQL или у вас есть локальная установка mysql на вашем собственном компьютере, вы можете создать ФУНКЦИЮ (например, хранимую процедуру), которая находится в вашей базе данных и может использоваться во всех будущих SQL-запросах в любой части дб.
Созданная мною функция позволяет мне использовать эту новую функцию, которую я назвал «UC_Words», точно так же, как встроенные собственные функции MySQL, так что я могу обновить весь столбец следующим образом:
Чтобы вставить код функции, я изменил стандартный разделитель MySQL (;) при создании функции, а затем вернул его в нормальное состояние после сценария создания функции. Я также лично хотел, чтобы вывод тоже был в UTF8 CHARSET.
Создание функции =
Это работает с выводом первых букв верхнего регистра для нескольких слов в строке.
Предполагая, что ваше имя пользователя для входа в MySQL имеет достаточные привилегии - если нет, и вы не можете настроить временную БД на своем персональном компьютере для преобразования ваших таблиц, тогда спросите своего поставщика общего хостинга, установят ли они эту функцию для вас.
источник
CHARSET utf8_general_ci
должен быть изменен наCHARSET utf8
(по крайней мере, на 5.7)Illegal mix of collations for operation 'concat'
поэтому я думаю, просто исправьте кодировку или удалите ее и сделайте ее по умолчанию.Вы можете использовать комбинацию
UCASE()
,MID()
иCONCAT()
:источник
SELECT CONCAT(UCASE(MID('TEST',1,1)),MID('TEST',2));
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_mid
источник
http://forge.mysql.com/tools/tool.php?id=201
Если в столбце больше 1 слова, это не сработает, как показано ниже. Упомянутый выше UDF может помочь в этом случае.
А может, это поможет ...
https://github.com/mysqludf/lib_mysqludf_str#str_ucwords
источник
Это прекрасно работает.
источник
источник
СОЗДАТЬ ФУНКЦИЮ:
ИСПОЛЬЗУЙТЕ ФУНКЦИЮ
источник
источник
Это должно работать нормально:
источник
источник
Вышеупомянутая инструкция может использоваться для первой буквы CAPS, а остальные - для строчной.
источник
Uso algo simples assim;)
источник