sql >> データベース >  >> RDS >> Mysql

mySQLは特殊文字なしでvarcharを設定しました

    方法1:

    REPLACE() を使用できます mysqlで特殊文字を削除する方法ですが、それが非常に効率的かどうかはわかりません。しかし、それは機能するはずです。

    以下のように:

    SELECT Replace(Replace(product_name,'@',''),'+','')  as prod_type
    From Table1
    

    フィドルデモ

    方法2:

    他のすべての特殊文字をお持ちの場合は、これを使用してください(ソース

    -- ---------------------------- 
    -- Function structure for `udf_cleanString` 
    -- ---------------------------- 
    DROP FUNCTION IF EXISTS `udf_cleanString`; 
    DELIMITER ;; 
    CREATE FUNCTION `udf_cleanString`(`in_str` varchar(4096)) RETURNS varchar(4096) CHARSET utf8 
    BEGIN    
          DECLARE out_str VARCHAR(4096) DEFAULT ''; 
          DECLARE c VARCHAR(4096) DEFAULT ''; 
          DECLARE pointer INT DEFAULT 1; 
    
          IF ISNULL(in_str) THEN 
                RETURN NULL; 
          ELSE 
                WHILE pointer <= LENGTH(in_str) DO 
    
                      SET c = MID(in_str, pointer, 1); 
    
                      IF ASCII(c) > 31 AND ASCII(c) < 127 THEN 
                            SET out_str = CONCAT(out_str, c); 
                      END IF; 
    
                      SET pointer = pointer + 1; 
                END WHILE; 
          END IF; 
    
          RETURN out_str; 
    END 
    ;; 
    DELIMITER ;
    

    その後、次のように関数を呼び出します。

    SELECT product_name, udf_cleanString(product_name) AS 'product_Type' 
    FROM table1;
    


    1. mysqlselectQueryを動的に作成する

    2. DjangoRestFrameworkのページネーションが非常に遅いカウント

    3. 合計を含む要約行を追加します

    4. その日のアイテムを表示する