update wp_moa_bible_mcheyne m
join wp_moa_bible_sort s on s.name_short = m.sort_name
set m.ever_seq_no = s.ever_seq_no
;
아래처럼 계속 하면 삽질만 한다.
update wp_moa_bible_mcheyne a
set ever_seq_no = (
select ever_seq_no
from wp_moa_bible_sort b
where a.sort_name = b.name_short
);
update wp_moa_bible_mcheyne m,
wp_moa_bible_sort s
set m.ever_seq_no = s.ever_seq_no
where m.sort_name = s.sort_name
;
"편안하게 지낼 적에 위태로움을 생각하라고 했습니다. 생각하면 대비가 있게 되고, 대비가 있으면 근심이 없습니다. (居安思危, 思則有備, 有備無患)" - 좌씨전
주희가 송 효종에게 올린 봉사(封事)에서 말했습니다. “천하의 일은 어렵거나 일이 많은 것을 근심할 것이 아니라 편안한 것이 짐독(酖毒)이 됨을 두려워해야 합니다. 설령 정치가 잘 행해져서 해야 할 일이 한 가지도 없다 하더라도 아침저녁으로 두려워하고 거안사위하면서 조금이라도 게을러서는 안 됩니다.”
인생에도 수업료가 있다. 귀한 것을 얻기 위해서는 반드시 대가를 치러야 하고 기약이 없는 인내를 해야 할 때도 있다. 대가를 크게 치를수록, 오래 기다리고 오래 배울수록, 인생은 깊고 넓어진다.
- 이애경의《나를 어디에 두고 온 걸까》중에서 -
* 세상에 쉬운 일이 없습니다. 마냥 거저 얻어지는 것도 없습니다. 응당한 수업료를 내고 기술도 배우고 유학도 가고 박사 과정도 열심히 밟습니다. 좋은 기술, 큰 공부일수록 수업료도 많습니다. 어렵고 힘든 고난이 닥치거든, 수업료 없이 큰 공부 하고 있다고 생각하십시오. 자기 인생의 빛나는 투자가 될 수 있습니다.
CREATE DEFINER=`gn`@`%` FUNCTION `fn_choSearch`(`str` varchar(20)) RETURNS varchar(20) CHARSET utf8
BEGIN
declare returnStr varchar(100);
declare cnt int;
declare i int;
declare j int;
declare tmpStr varchar(10);
if str is null then
return '';
end if;
set cnt = length(str)/3;
set i = 1;
set j = 1;
while i <=cnt DO
set tmpStr = substring(str,i,j);
set returnStr = concat(ifnull(returnStr,''),
case when tmpStr rlike '^(ㄱ|ㄲ)' OR ( tmpStr >= '가' AND tmpStr < '나' ) then 'ㄱ'
when tmpStr rlike '^ㄴ' OR ( tmpStr >= '나' AND tmpStr < '다' ) then 'ㄴ'
when tmpStr rlike '^(ㄷ|ㄸ)' OR ( tmpStr >= '다' AND tmpStr < '라' ) then 'ㄷ'
when tmpStr rlike '^ㄹ' OR ( tmpStr >= '라' AND tmpStr < '마' ) then 'ㄹ'
when tmpStr rlike '^ㅁ' OR ( tmpStr >= '마' AND tmpStr < '바' ) then 'ㅁ'
when tmpStr rlike '^ㅂ' OR ( tmpStr >= '바' AND tmpStr < '사' ) then 'ㅂ'
when tmpStr rlike '^(ㅅ|ㅆ)' OR ( tmpStr >= '사' AND tmpStr < '아' ) then 'ㅅ'
when tmpStr rlike '^ㅇ' OR ( tmpStr >= '아' AND tmpStr < '자' ) then 'ㅇ'
when tmpStr rlike '^(ㅈ|ㅉ)' OR ( tmpStr >= '자' AND tmpStr < '차' ) then 'ㅈ'
when tmpStr rlike '^ㅊ' OR ( tmpStr >= '차' AND tmpStr < '카' ) then 'ㅊ'
when tmpStr rlike '^ㅋ' OR ( tmpStr >= '카' AND tmpStr < '타' ) then 'ㅋ'
when tmpStr rlike '^ㅌ' OR ( tmpStr >= '타' AND tmpStr < '파' ) then 'ㅌ'
when tmpStr rlike '^ㅍ' OR ( tmpStr >= '파' AND tmpStr < '하' ) then 'ㅍ'
else 'ㅎ' end);
set i=i+1;
end while;
RETURN returnStr;
END;
자바스크립트로 검색어가 초성인지 아닌지 체크
var keyword = $("#keyword").val().toUpperCase();
var choKeyword = choHangul($("#keyword").val());
//초성검색 구분
if (keyword!="" && choKeyword==""){
choDiv = 'Y';
}else{
choDiv = 'N';
}
/* 초성추출 */
function choHangul(str) {
cho = ["ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"];
result = "";
for(i=0;i<str.length;i++) {
code = str.charCodeAt(i)-44032;
if(code>-1 && code<11172) result += cho[Math.floor(code/588)];
}
return result;
}
쿼리에서 초성 추출하자.
WHERE 1=1
<isEqual prepend='AND' property="choDiv" compareValue="N" >
S1.STOP_NAME LIKE concat('%',#keyword#,'%') OR S1.STOP_ID LIKE concat('%',#keyword#,'%')
</isEqual>
<isEqual prepend='AND' property="choDiv" compareValue="Y" >
fn_choSearch(S1.stop_name) LIKE concat('%',#keyword#,'%') OR S1.STOP_ID LIKE concat('%',#keyword#,'%')
</isEqual>
choDiv 값이 N 일 경우 일반검색 choDiv 값이 Y 일 경우 위의 oracle함수를 사용하여 초성검색
예를 들어 이렇게 구현을 하면 'ㄱㄴㄷ' 으로 검색을 하면 가나다 간난단 갇낟닫 ... 등 초성이 ㄱ,ㄴ,ㄷ 인 데이터가 검색된다.