Простой способ обновить определенное поле в базе данных с использованием верхнего регистра?

#mysql

#mysql

Вопрос:

Я хочу обновить поле ‘prefix’ в моей таблице курсов, чтобы в нем была заглавной только ПЕРВАЯ буква, а не весь префикс.

Есть ли какой-нибудь простой способ сделать это в SQL?? Пример вывода может выглядеть как ‘Aadm’ в базе данных для ‘prefix’.

Моя таблица выглядит следующим образом: введите описание изображения здесь

Примерные строки выглядят как: введите описание изображения здесь

У меня есть SQL, который выглядит как:

 WHERE CONCAT(prefix,code) LIKE '%".  $keywords . "%'");
  

Возможно ли, чтобы пользователь УМЕНЬШИЛ здесь префикс?

Ответ №1:

 select prefix,
concat(upper(substring(prefix,1,1)),substring(lower(prefix) from 2)) as initcap
from course
  

попробуйте это в форме выбора, прежде чем обновлять свое поле

если вы ищете префиксы, в которых все символы указаны в верхнем регистре, используйте регулярное выражение

 where binary(prefix) regexp '^[A-Z] $' 
  

Редактировать. Запрос на обновление

 update course 
set prefix =
concat(upper(substring(prefix,1,1)),substring(lower(prefix) from 2)) 
  

Комментарии:

1. Я получаю эту ошибку: SQL запрос: ВЫБЕРИТЕ prefixCONCAT(ВЕРХНЯЯ ( ПОДСТРОКА (префикс, 1, 1) ), ПОДСТРОКА (НИЖНЯЯ (префикс) ИЗ курса) ) КАК инициализация ИЗ курса LIMIT 0, 30 MySQL сказал: #1064 — У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘concat(верхняя(подстрока (префикс, 1, 1)), подстрока (нижняя (префикс) из Курс)) как ini’ в строке 2

2. Таблица: Курс, а имя поля: Префикс.

3. Более того, я не вижу «из 2». Не связывайтесь с копированием и вставкой : (

4. В вашем случае это просто псевдоним. В других СУБД это имя функции, которая выполняет эту работу за вас. 🙂

5. Я переключился обратно, теперь все хорошо, я просто переключаю ‘Select’ на ‘Update’, верно?