반응형
반응형

[MYSQL] update ...select 구문. 삽질하다가 OK

#mysql #database #update #select

아래처럼 해야함.

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

;
반응형
반응형

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색

함수를 만들어서 추출해보자. 

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함수를 사용하여 초성검색


예를 들어
이렇게 구현을 하면 'ㄱㄴㄷ' 으로 검색을 하면
가나다
간난단
갇낟닫
...
등 초성이 ㄱ,ㄴ,ㄷ 인 데이터가 검색된다.

출처 : https://aljjabaegi.tistory.com/220

 

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색 개발을 하다보면 자음으로만 검색할 수 있게 해달라는 요청이 들어오곤 한다. 그럴때마다 유용하게 사용하는 것이 아래의 함수이다. 그냥 복사 붙여넣고 실..

aljjabaegi.tistory.com

 

반응형
반응형

MYSQL 특수문자 치환, 특수문자 치환 찾기MYSQL 특수문자 치환, 특수문자 치환 찾기. CHAR()

SELECT char(63);
SELECT ASCII('?') FROM DUAL;
SELECT CONCAT('http://naver.com/Mobile.dm',char(63),'123') MOBILE_URL

 

반응형
반응형
qdPM™Free Web-Based Project Management Software (PHP/MySql)

http://qdpm.net/

...
반응형
반응형

Amazon LinuxLAMP 웹 서버 설치

http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/install-LAMP.html


다음 절차를 통해 Amazon Linux 인스턴스에 PHP 및 MySQL을 지원하는 Apache 웹 서버를 설치할 수 있습니다. 이 웹 서버를 LAMP 웹 서버 또는 LAMP 스택이라고도 합니다. 이 서버를 사용해서 고정 웹사이트를 호스팅하거나 데이터베이스에서 정보를 읽고 쓰는 동적 PHP 애플리케이션을 배포할 수 있습니다.

중요

LAMP 웹 서버를 Ubuntu 인스턴스에서 설치하려는 경우는 본 자습서를 이용할 수 없습니다. 이 절차는 Amazon Linux에서 사용하기 위한 것입니다. 기타 배포에 대한 자세한 내용은 해당 배포의 특정 문서를 참조하십시오. Ubuntu의 LAMP 웹 서버에 대한 자세한 내용은 Ubuntu 커뮤니티 문서 ApacheMySQLPHP 항목을 참조하십시오.

사전 조건

본 자습서는 사용자가 인터넷에서 접근할 수 있는 퍼블릭 DNS 이름을 가진 새 인스턴스를 이미 실행한 것으로 가정하고 있습니다. 자세한 내용은 1단계: 인스턴스 시작 단원을 참조하십시오. SSH(포트 22), HTTP(포트 80), HTTPS(포트 443) 연결을 허용할 수 있도록 보안 그룹을 구성해야 합니다. 이 사전 요구 사항에 대한 자세한 내용은 Amazon EC2로 설정 단원을 참조하십시오.


[ec2-user ~]$ sudo yum update -y
[ec2-user ~]$ sudo yum install -y httpd24 php56 mysql56-server php56-mysqlnd
[ec2-user ~]$ sudo service httpd start
Starting httpd:                                            [  OK  ]
[ec2-user ~]$ sudo chkconfig httpd on
[ec2-user ~]$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
Security Groups associated with i-1234567890abcdef0
Ports Protocol Source launch-wizard-N 22 tcp 0.0.0.0/0 ✔

보안 그룹에 규칙 추가의 절차를 사용하여 다음 값으로 새로운 인바운드 보안 규칙을 추가합니다.

  • Type - HTTP

  • Protocol - TCP

  • Port Range - 80

  • Source - Custom

Apache 테스트 페이지를 볼 수 없는 경우, 사용 중인 보안 그룹에 HTTP(포트 80) 트래픽을 허용하는 규칙이 있는지 확인하십시오. 


[ec2-user ~]$ ls -l /var/www
total 16
drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin
drwxr-xr-x 3 root root 4096 Aug  7 00:02 error
drwxr-xr-x 2 root root 4096 Jan  6  2012 html
drwxr-xr-x 3 root root 4096 Aug  7 00:02 icons
drwxr-xr-x 2 root root 4096 Aug  7 21:17 noindex
[ec2-user ~]$ sudo usermod -a -G apache ec2-user
[ec2-user ~]$ exit
[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
[ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
http://my.public.dns.amazonaws.com/phpinfo.php

[ec2-user ~]$ sudo yum list installed httpd24 php56 mysql56-server php56-mysqlnd

Loaded plugins: priorities, update-motd, upgrade-helper
Installed Packages
httpd24.x86_64                          2.4.25-1.68.amzn1                    @amzn-updates
mysql56-server.x86_64                   5.6.35-1.23.amzn1                    @amzn-updates
php70.x86_64                            7.0.14-1.20.amzn1                    @amzn-updates
php70-mysqlnd.x86_64                    7.0.14-1.20.amzn1                    @amzn-updates
[ec2-user ~]$ rm /var/www/html/phpinfo.php

Mysql 서버보안 유지

[ec2-user ~]$ sudo service mysqld start
Initializing MySQL database:  
...

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
...

Starting mysqld:                                           [  OK  ]
[ec2-user ~]$ sudo mysql_secure_installation
  1. 암호를 입력하라는 메시지가 표시되면 루트 계정의 암호를 입력합니다.

    1. 현재 루트 암호를 입력합니다. 기본적으로 root 계정에는 암호가 없습니다. Enter를 누릅니다.

    2. 암호를 설정하려면 Y를 누른 후 안전한 암호를 두 번 입력합니다. 안전한 암호 생성에 대한 자세한 내용은 http://www.pctools.com/guides/password/ 단원을 참조하십시오. 이 암호를 안전한 장소에 보관하시기 바랍니다.

      참고

      MySQL에 대한 루트 암호를 설정하는 것은 데이터베이스를 보호하는 가장 기초적인 방법일 뿐입니다. 데이터베이스 기반 애플리케이션을 빌드하거나 설치할 때, 일반적으로 그 애플리케이션의 데이터베이스 서비스 사용자를 만들고 데이터베이스 관리 이외의 어떤 목적으로도 루트 계정을 사용하지 못하게 합니다.

  2. Y를 입력하여 익명 사용자 계정을 제거합니다.

  3. Y를 입력하여 원격 루트 로그인을 비활성화합니다.

  4. Y를 입력하여 테스트 데이터베이스를 제거합니다.

  5. Y를 입력하여 권한 테이블을 다시 로드하고 변경 내용을 저장합니다.

[ec2-user ~]$ sudo service mysqld stop
Stopping mysqld:                                           [  OK  ]
[ec2-user ~]$ sudo chkconfig mysqld on








...

반응형
반응형

[Mac] Mac에서 APM 설치하기 - MAMP


https://www.mamp.info/en/ 


Mac에서 간단하게 테스트 할 정도이면 Free 버전을 설치해서 사용하면된다. 


ChatScript 를 Mac 에서 구현하려니 PHP구동이 필요해서 설치 해보았다. 





...

반응형

+ Recent posts