php - MySQL 编辑值

标签 php mysql

好的,这是一个简单的:

我在 MySQL 中有一个表,其中保存了一些国家名称(由用户插入)。 “问题”是一些用户插入的国家名称没有第一个大写字母。

A 需要一个脚本(查询+PHP)从表中的 1 列中选择所有值,并应用一个 PHP 脚本,使每个单词的第一个字母为大写字母,其余为小写字母。

例子: 编辑前:

Name oNe
cOUNTRY
VaLue
value

编辑后:

Name One
Country
Value
Value

我想知道两件事: -> 在 mySQL 表中编辑值的最简单方法 ->最简单的 PHP 方法来大写脚本中每个单词的首字母(空格分隔)

谢谢!

最佳答案

您可以使用 this功能:

DELIMITER $$

DROP FUNCTION IF EXISTS `ICap`$$

CREATE FUNCTION `ICap`(mystring varchar(1000))
    RETURNS VARCHAR(1000)
BEGIN

DECLARE i INT DEFAULT 1;
DECLARE myc, pc CHAR(1);
DECLARE myoutstring VARCHAR(1000) DEFAULT LOWER(mystring);

WHILE i <= CHAR_LENGTH(mystring) DO
    SET myc = SUBSTRING(mystring, i, 1);
    SET pc = CASE WHEN i = 1 THEN ' ' ELSE SUBSTRING(mystring, i - 1, 1) END;
    IF pc IN (' ', '&', '''', '_', '?', ';', ':', '!', ',', '-', '/', '(', '.') THEN
        SET myoutstring = INSERT(myoutstring, i, 1, UPPER(myc));
    END IF;
    SET i = i + 1;
END WHILE;

RETURN myoutstring;

END$$

DELIMITER ;

之后,您可以像这样检索结果:

SELECT 
  ICap(name)
FROM
  MyTable 

或者只更新所有行:

UPDATE 
  MyTable
SET 
  name = ICap(name)

关于php - MySQL 编辑值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123733/

相关文章:

javascript - 如何通过ajax执行PHP函数?

php - tumblr PHP file_get_contents html 未运行

sql - MySQL 查询和文本搜索

MySQL 按 IN 数组排序

mysql - Magento core_url_rewrite 零星性能

mysql - FoxPro -> MySQL

php将多维数组内爆到制表符分隔行

javascript - 使用 URL 中的动态参数进行重定向

php - 仅限浏览器的缓存控制 - 不是 CDN

python - Django 保存科学数字