mysql使用小技巧

2018-11-21  本文已影响0人  忘川之曼殊沙华

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" );
上一篇 下一篇

猜你喜欢

热点阅读