1. 와일드 카드란?
와일드 카드는 WHERE 절에서 와일드 카드 문자와 함께 사용되는 연산으로, 다양한 조합을 이용하여 패턴에 맞는 문자열을 찾는데에 사용될 수 있다. 와일드 카드는 정규형과 같이 정확한 값을 직접 제공하는 것이 아닌, 특정 패턴을 제공하여 패턴에 맞는 레코드들을 확인할 수 있다는 장점이 있다. 예를 들어서 a로 시작하는 문자열 패턴을 갖는 레코드를 검색하고 싶다면, 일반 WHERE 절에서 불가능하지만, 와일드 카드를 이용하여 WHERE XXXX LIKE ‘a%’로 검색하면 원하는 결과를 얻다.
2. 와일드 카드의 장점과 약점 / 주의점
와일드 카드는 패턴을 검색할 수 있다는 장점이 있지만, 이 패턴을 찾는 과정에서 리소스가 많이 필요하다는 단점이 존재한다. 일반적인 검색에 비해 오래걸리고 많은 메모리와 시간을 차지하므로, 와일드 카드를 대체하는 방법이 있다면 그 대안을 사용하거나 1차 조건문으로써 사용하지 않음으로써 적은 레코드에 대해 검색을 하는 등 와일드 카드의 사용을 최대한 지양해야한다.
또한 NULL은 와일드 카드로 매칭이 되지 않으므로 대신 WHERE XXX IS NULL으로 대체해야한다는 주의점과 와일드 카드를 잘못된 곳에 사용한다면 의도와 다른 데이터가 검색되므로, 와일드 카드 문자가 어떤 의미를 갖는지, 위치가 정확한지 등을 파악하고 사용해야한다는 주의점이 존재한다.
- References
https://www.w3schools.com/mysql/mysql_wildcards.asp ( w3school / MySQL Wildcards)
https://blog.daum.net/kkyagami/17 ( 날아라붕어빵 / [MYSQL] Mysql 와일드카드 )
http://blog.naver.com/PostView.nhn?blogId=c6369&logNo=220731189128&parentCategoryNo=&categoryNo=7&viewDate=&isShowPopularPosts=false&from=postView ( 포크다 / WHERE 활용법 3 (LIKE 연산자, 와일드카드))
https://velog.io/@datata29/SQL-%EC%99%80%EC%9D%BC%EB%93%9C-%EC%B9%B4%EB%93%9C-%EB%AC%B8%EC%9E%90%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%95%84%ED%84%B0%EB%A7%81 ( Datata29.log / [SQL] 와일드 카드 문자를 이용한 필터링)