#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’, верно?