1. 去除某个字段数据前面的空格
// 注意 where 后面的空格要和字段中的空格(个数)一致
UPDATE cloud_video_source SET video_id = replace(video_id,' ','') WHERE video_id REGEXP '^ ';
2. 替换某个字段中的字符串
UPDATE cloud_video_source SET update_time = replace(update_time,'/','-') ;
3. 两个函数
(1)mysql replace 函数
语法:replace(object,search,replace)
意思:把object中出现search的全部替换为replace
案例:清除news表中content字段中的空格
update `news` set `content`=replace(`content`,' ','');
(2)mysql trim 函数
语法:trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
以下举例说明:
mysql> SELECT TRIM(' phpernote ');
-> 'phpernote'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxphpernotexxx');
-> 'phpernotexxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxphpernotexxx');
-> 'phpernote'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'phpernotexxyz');
-> 'phpernotex'
MySQL数据库中插入数据的时候,由于疏忽,有些列文字前面多了一个空格,要网上的方法大多数是直接使用replace:
UPDATE example
SET col = replace(col, ' ', '')
WHERE col replace '^ ';
使用这种方法固然可以把行首的空格去掉,但是列中文字间用于分割词语的空格也会被去掉,一大片文字会连起来,故不可行。
一个较为简单可行的方法:
首先使用CONCAT()在有空格的行前面加一个字符‘x’:
UPDATE example
SET col = CONCAT('x', col)
WHERE col REGEXP '^ ';
这样下来行前面多了两个字符 ‘x ‘。
然后使用REPLACE来把多的两个字符一起去掉:
UPDATE example
SET col = REPLACE(col, 'x ', '')
WHERE col REGEXP '^x ';
3. select语句,查询时直接将数字转为文字显示
SELECT
t_user.user_rel_name,
(CASE WHEN t_user.user_sex = 0 THEN '男' WHEN t_user.user_sex = 1 THEN '女' END ) user_sex,
(CASE WHEN t_user.user_type = 0 THEN '普通用户' WHEN t_user.user_type = 1 THEN '保密用户' END ) user_type
FROM
t_user
4. 判断 不存在 插入记录的语句
INSERT INTO t_org_payment_detail ( uuid, pm_uuid, pay_time ) SELECT
'10011',
'小李aaa',
'13112345678'
FROM
DUAL
WHERE
NOT EXISTS ( SELECT * FROM t_org_payment_detail WHERE pm_uuid = "小李zzz" AND pay_time = "13112345678" );
网友评论