2011年4月26日 星期二

SQL 計算欄位字串出現次數

資料表建立

CREATE TABLE `test1` (
`C1` int(11) NOT NULL auto_increment,
`C2` varchar(11) default NULL,
PRIMARY KEY (`C1`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8


INSERT INTO `test1` VALUES (1, '10442');
INSERT INTO `test1` VALUES (2, '4403');
INSERT INTO `test1` VALUES (3, '6513');
INSERT INTO `test1` VALUES (4, '2222');

SELECT 語法 for Mysql

方式 1

SELECT CHAR_LENGTH(Replace(C2,'4','4z'))-CHAR_LENGTH(C2) FROM TEST1 where C2 LIKE '%4%'

方式 2

SELECT CHAR_LENGTH(C2)-CHAR_LENGTH(Replace(C2,'4','')) FROM TEST1 where C2 LIKE '%4%'


原理 :
用replace的方式 , 取出 4 後將 4的部份變更字元數 , 就會增加字串的長度或減少 , 在使用 Len ( SQL ) , CHAR_LENGTH ( MYSQL ) 來計算字串的長度 , 將變更後的長度和原本長度互減就可找出字串欄位出現的次數

沒有留言:

張貼留言