有没有一种简单的方法将MySQL数据转换为标题大小写?

2023-12-05

我有一个 MySQL 表,其中一列中的所有数据均以大写形式输入,但我需要转换为标题大小写,并识别类似于大胆的火球标题案例脚本.

I found 这个优秀的解决方案用于将字符串转换为小写,但 Title Case 函数似乎已被排除在我的 MySQL 版本之外。有没有一种优雅的方法来做到这一点?


Edit

尤里卡!毫不夸张地说,这是我的第一个 SQL 函数。不提供保修。使用前请备份数据。 :)

首先,定义以下函数:

DROP FUNCTION IF EXISTS lowerword;
SET GLOBAL  log_bin_trust_function_creators=TRUE; 
DELIMITER |
CREATE FUNCTION lowerword( str VARCHAR(128), word VARCHAR(5) )
RETURNS VARCHAR(128)
DETERMINISTIC
BEGIN
  DECLARE i INT DEFAULT 1;
  DECLARE loc INT;

  SET loc = LOCATE(CONCAT(word,' '), str, 2);
  IF loc > 1 THEN
    WHILE i <= LENGTH (str) AND loc <> 0 DO
      SET str = INSERT(str,loc,LENGTH(word),LCASE(word));
      SET i = loc+LENGTH(word);
      SET loc = LOCATE(CONCAT(word,' '), str, i);
    END WHILE;
  END IF;
  RETURN str;
END;
|
DELIMITER ;

这将降低 str 中单词的所有出现次数。

然后定义这个修改后的正确函数:

DROP FUNCTION IF EXISTS tcase; 
SET GLOBAL  log_bin_trust_function_creators=TRUE; 
DELIMITER | 
CREATE FUNCTION tcase( str VARCHAR(128) ) 
RETURNS VARCHAR(128)
DETERMINISTIC
BEGIN 
  DECLARE c CHAR(1); 
  DECLARE s VARCHAR(128); 
  DECLARE i INT DEFAULT 1; 
  DECLARE bool INT DEFAULT 1; 
  DECLARE punct CHAR(17) DEFAULT ' ()[]{},.-_!@;:?/'; 
  SET s = LCASE( str ); 
  WHILE i <= LENGTH( str ) DO
    BEGIN 
      SET c = SUBSTRING( s, i, 1 ); 
      IF LOCATE( c, punct ) > 0 THEN 
        SET bool = 1; 
      ELSEIF bool=1 THEN  
        BEGIN 
          IF c >= 'a' AND c <= 'z' THEN  
            BEGIN 
              SET s = CONCAT(LEFT(s,i-1),UCASE(c),SUBSTRING(s,i+1)); 
              SET bool = 0; 
            END; 
          ELSEIF c >= '0' AND c <= '9' THEN 
            SET bool = 0; 
          END IF; 
        END; 
      END IF; 
      SET i = i+1; 
    END; 
  END WHILE;

  SET s = lowerword(s, 'A');
  SET s = lowerword(s, 'An');
  SET s = lowerword(s, 'And');
  SET s = lowerword(s, 'As');
  SET s = lowerword(s, 'At');
  SET s = lowerword(s, 'But');
  SET s = lowerword(s, 'By');
  SET s = lowerword(s, 'For');
  SET s = lowerword(s, 'If');
  SET s = lowerword(s, 'In');
  SET s = lowerword(s, 'Of');
  SET s = lowerword(s, 'On');
  SET s = lowerword(s, 'Or');
  SET s = lowerword(s, 'The');
  SET s = lowerword(s, 'To');
  SET s = lowerword(s, 'Via');

  RETURN s; 
END; 
| 
DELIMITER ; 

Usage

验证其按预期工作:

SELECT tcase(title) FROM table;

Use it:

UPDATE table SET title = tcase(title);

Source:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有一种简单的方法将MySQL数据转换为标题大小写? 的相关文章

  • MySQL 5左连接未知列

    我有以下查询在 mysql 4 1 中工作 但在 5 0 中不起作用 SELECT FROM email e event email ee LEFT JOIN member m on m email e email WHERE ee ema
  • 自动将所有mysql表转储到单独的文件中?

    我想将每个 mysql 表转储到单独的文件中 手册指出其语法是 mysqldump options db name tbl name 这表明您事先知道表名称 我现在可以设置知道每个表名称的脚本 但是假设我在路上添加了一个新表并且忘记更新转储
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • Spark SQL/Hive 查询通过 Join 永远持续下去

    所以我正在做一些应该很简单的事情 但显然它不在 Spark SQL 中 如果我在 MySQL 中运行以下查询 查询将在不到一秒的时间内完成 SELECT ua address id FROM user u inner join user a
  • RMySQL fetch - 找不到继承的方法

    使用 RMySQL 我想将数据从数据库加载到 R 中的数据帧中 为此 我使用以下代码 R连接数据库 con lt dbConnect MySQL user root password password dbname prediction h
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • 使用MySQL计算单个表中借方和贷方的余额

    下面的 MySQL 表包含带有关联金额的借方或贷方 操作 如何选择具有非零 余额 的所有 CLIENT ID 我尝试将表连接到自身以计算所有借方和贷方总额 但有些东西无法正常工作 CLIENT ID ACTION TYPE ACTION A
  • Laravel Sum 列数据库 Eloquent

    尝试获取我的一个表中 int 字段的总和应该非常容易 不幸的是 事实并非如此 因为无论我使用 Laravel MySQL 还是 Excel 我都会得到不同的结果 Laravel 5 4 给了我20506 Table sum field na
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • 如何在 join 语句中进行计数

    我有桌子post int post id varchar title text content和表comment int comment id int post id varchar content其中 post id 是外键引用表帖子 如
  • 如何在Sequelize中从主模型同一级别的包含模型返回结果?

    这是我在项目中完成的代码和结果 我想获得包含模型的结果与主模型相同的结果 下面的代码是我所做的 序列化查询 User findAll include model Position attributes POSITION NAME then
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • SQLSTATE[HY000] [2002] 资源暂时不可用 - mysql - innodb 和 pdo

    在我的错误日志中得到大量结果 如下所列 数据库中的所有表都是 innodb 并且就与这些表的任何交互而言 一切都是带有准备好的语句的 pdo 正如我所说 所有错误几乎与下面列出的错误相同 但发生在几个不同的页面上 无论页面如何 错误行始终指
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • ORDER BY 之后的 GROUP BY

    我需要去做GROUP BY after ORDER BY 我不明白为什么 MySQL 不支持这一点 这是我的代码 SELECT pages id contents id language ORDER BY FIND IN SET langu
  • MySql 从另一个表中减去一个表

    我有两个表 A 包含所有数据 表 B 从 A 中随机选择 25 的数据创建 所以 A 和 B 具有完全相同的列 也没有独特的列 我想做的是从 A 中减去 B 有什么想法吗 查看所有行A除了那些在B SELECT FROM A WHERE f
  • 错误代码 13,SELECT INTO OUTFILE 问题

    我试图了解使用 INTO OUTFILE 命令时不断遇到问题的原因 我总是收到这个错误 ERROR 1 HY000 Can t create write to file var www p1 txt Errcode 13 SELECT pa
  • 将此 MySQL 查询转换为 PyGreSQL

    我正在开发一个 Ruby 应用程序 它使用 mysql 函数 XOR 和 BIT COUNT 不过 我现在需要在运行 PyGreSQL 的 Heroku 上运行该应用程序 我找不到任何可以帮助我的 PyGreSQL 文档 那么任何人都可以翻
  • 安装后步骤未成功完成 MySQL Mac OS Sierra

    pyEnv Anants MacBook Pro litibackend anantchandra brew postinstall mysql gt Postinstalling mysql gt usr local Cellar mys

随机推荐

  • Rails-4,ExecJS::Pages 中的ProgramError#welcome

    我正在尝试向我的 Rails 应用程序添加登录 注销功能 为此我添加了bcryptgem 用于密码加密和访问控制器 现在 当我在本地运行它时 我收到一条错误消息 在添加上述功能之前 我的应用程序运行良好 错误信息 TypeError Obj
  • Android 中的 Activity 或 Fragment?

    我正在创建一个带有操作栏的应用程序 选项卡会转到不同的网页 当用户单击不同的选项卡时 我希望以前的选项卡网页保持相同的状态 即再次按下选项卡时不重新加载 最好的方法是什么 单独活动 碎片 一项活动中有多个网络视图 Thanks 使用 Act
  • 从 mod_rewrite 规则中排除图像

    我的 htaccess 脚本无意中更改了图像 URL 因此 URL 路径中包含 portfolio 的任何图像都会受到不利影响 有什么方法可以将图像从该特定规则中排除吗 redirect 301 sitemap xml http www e
  • WPF 中线程的非常基本的解释?

    我对 WPF 非常陌生 我在互联网上查找了一些有关线程的示例和教程 他们有自己的描述方式 但对于像我这样天真的人来说 我想以自己的方式去理解 我可以使用数据库更新功能开始我的第一个线程 这是场景 我有大量数据要插入数据库中 现在让我们假设以
  • flowjs:调用方法“join”。无法在混合上调用方法

    假设我有一个恒定的动物 我用它导入 import animals from animals 假设动物常数为 hoofed horses sheep goats feline lions tigers canine dogs wolves 假
  • 如何使用flask-admin编辑模型视图

    如何从flask admin的编辑页面使用generate password hash设置password hash 我在 python shell 中创建用户名和密码 密码经过哈希处理 admin add view MyModelView
  • 如何在文件中存储和检索 Python 本机数据结构?

    我正在读取 XML 文件并将所需数据重新组织为 Python 数据结构 列表 元组等 例如 我的 XML 解析器模块之一会生成以下数据 data miner py animals Chicken Sheep Cattle Horse pop
  • Xamarin.IOS:本地化不起作用

    我有一个 Xamarin IOS 应用程序并尝试本地化一些图像 我以这篇文章作为指导 https developer xamarin com guides ios advanced topics localization and inter
  • WPF:可编辑的组合框会掉落?

    我正在尝试创建一个既可编辑又可下拉而不是下拉的组合框 按向上箭头键 默认为向下键 时也应打开菜单 我尝试修改 ComboBox 的默认 ControlTemplate 但它似乎不支持 IsEditable 默认ControlTemplate
  • 如何用SAX正确解析XML?

    我正在从 REST 服务接收 XML 文档 该文档应使用 SAX 进行解析 请参阅以下由 XSD 生成的示例 设置解析器不是问题 我的主要问题是实际处理startElement endElement 我不明白如何提取我需要的项目并存储它们
  • 套接字:有时(很少)数据包在接收过程中丢失

    我在用着Socket从 udp 多播接收数据 代码很简单 s new Socket AddressFamily InterNetwork SocketType Dgram ProtocolType Udp while true int co
  • 使用 Firebase Simple Login 保护路由

    我正在尝试在使用 Firebase Simple Login 的 Ember 应用程序中实现以下事件序列ember cli 在允许进入任何路由之前检查用户是否经过身份验证 All路由需要经过身份验证 如果用户未通过身份验证 则重定向到Log
  • 使用 Twitter API 版本 1.1 检索 user_timeline 的最简单 Java 示例

    我正在寻找一个使用 Twitter 1 1 API 的简单 Java 示例 但没有找到 使用此处发布的 PHP 示例 使用 Twitter API 版本 1 1 检索 user timeline 的最简单 PHP 示例和其他一些 Stack
  • 根据一列的值合并数据

    我在 R 中有一个数据框 year group sales 1 2000 1 20 2 2001 1 25 3 2002 1 23 4 2003 1 30 5 2001 2 50 6 2002 2 55 我想按组对数据进行分组或创建某种对象
  • 如何使用 html5 重置视频

    我对网络编程有点陌生 我正在尝试弄清楚如何在第一次播放视频后重置视频 我的代码是 var video document getElementById home video video addEventListener click funct
  • 使用 mp3 元数据或 HTML 在 iPhone 锁定屏幕上显示插图和曲目名称

    当您在使用 safari chrome 等后锁定 iPhone 时 当播放 mp3 文件时 它会显示空白的插图和指向 mp3 文件位置的硬链接 看起来相当难看 我可以包含一些替代标签 元数据来显示艺术作品和曲目标题吗 您可以通过设置添加一个
  • 我应该如何处理 APP_KEY 和 APP_SECRET (Dropbox API)

    我使用 Dropbox API 编写了一段简单的代码 这意味着使用我的应用程序的 APP KEY 和 APP SECRET 假设有人也想使用我的应用程序 我创建了一个 github 存储库 推送代码等等 但是 当然 我不放置 APP KEY
  • 将数据从固定长度文件读取到类对象中

    我有一个固定长度的文件 想将其数据读入类对象中 这些对象将进一步用于在数据库中插入 更新数据 虽然可以使用 StreamReader 来完成 但我正在寻找更复杂的解决方案 FileHelper 是另一种解决方案 但我不想在我的程序中使用开源
  • Delphi中'Result'的默认值是多少?

    是否有任何保证的默认值Result函数的变量 如 0 或 nil 或者应该Result使用前总是要初始化吗 我有一个函数返回这样的字符串 function Foo String begin while do Result Result bo
  • 有没有一种简单的方法将MySQL数据转换为标题大小写?

    我有一个 MySQL 表 其中一列中的所有数据均以大写形式输入 但我需要转换为标题大小写 并识别类似于大胆的火球标题案例脚本 I found 这个优秀的解决方案用于将字符串转换为小写 但 Title Case 函数似乎已被排除在我的 MyS