*제목 검색(pd_name에 index 걸려 있음)
1. LIKE 유형1

SELECT * FROM rb_product
WHERE pd_name LIKE '%테스트%';


index 못탑니다.

2. LIKE 유형2(우 %)

SELECT * FROM rb_product
WHERE pd_name LIKE '테스트%';

 

index 탑니다.

3. LIKE 유형32(좌 %)

SELECT * FROM rb_product
WHERE pd_name LIKE '%테스트';

index 탑니다.

4. 커버링 인덱스

SELECT A.*
FROM (
SELECT pd_idx, pd_name
FROM rb_product
WHERE pd_name LIKE '%테스트%'
#LIMIT 100000, 100
) AS P
INNER JOIN rb_product AS A ON A.pd_idx=P.pd_idx

index 탑니다.

*기타 제목 검색

SELECT * FROM rb_product
WHERE INSTR(LOWER(pd_name),LOWER('테스트'))>0;


index 못탑니다.

*컨텐츠 TEXT data type
-- 데이터 길이 때문에 index key 생성 불가능합니다.

SELECT A.*
FROM (
SELECT pd_idx, pd_contents
FROM rb_product
WHERE pd_contents LIKE '%테스트%'
#LIMIT 100000, 100
) AS P
INNER JOIN rb_product AS A ON A.pd_idx=P.pd_idx

pd_contents 인덱스가 걸리지 않기 때문에 인덱스 못탑니다.

============================
*FULL TEXT index
cafe24 웹호스팅 mysql innodb_ft_min_token_size
show variables like 'innodb_ft_min%'
기본 3글자로 세팅이 되어 있는 상태이고, 웹호스팅이기 때문에 변경이 안됩니다.

cafe24 웹호스팅 사용하는 이상은 레코드의 양 많을 때는 TEXT  data type에 인덱스를 걸수 없기 때문에 TEXT data type의 검색은 지양해야 한다고 판단 됩니다.

 

mwb 확장자는 무엇일까요?



MySQL workbench 에서 저장된 파일은 mwb 확장자를 가지게 됩니다.


SELECT date_format(idate,'%Y-%m-%d') AS idate FROM 테이블명


idate라는 컬럼의 데이터가 000-00-00 포맷이 아니라면 해당 형태로 변환하여 SELECT

SELECT email, count(*) FROM registration GROUP BY email;


=> email 컬럼의 데이터 중 개수를 조회합니다.




'tech > SQL' 카테고리의 다른 글

mwb 확장자는?  (0) 2017.05.29
날짜 형태로 변환  (0) 2016.10.04
테이블에 같은 값이 있으면 update, 없으면 insert 하기  (0) 2013.11.07
숫자와 문자 데이타가 섞인 데이터의 정렬  (0) 2013.02.06
sqlite  (0) 2010.11.16





테이블에 같은 값이 있으면 update, 없으면 insert 하기




INSERT ... ON DUPLICATE KEY UPDATE Syntax




INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;


발췌 : http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html


'tech > SQL' 카테고리의 다른 글

날짜 형태로 변환  (0) 2016.10.04
[MySQL] 컬럼 데이터 개수 조회  (0) 2015.12.09
숫자와 문자 데이타가 섞인 데이터의 정렬  (0) 2013.02.06
sqlite  (0) 2010.11.16
[mysql] 문자 개수 만큼인것 만 보여줘~  (0) 2009.03.03





숫자와 문자 데이타가 섞인 데이터의 정렬







예전에 MYSQL 환경에서 숫자와 문자 데이터가 섞인 데이터를 정렬 할려고


select * from 테이블 order by 해당 컬럼 asc;


를 하면


No.1

No.10

No.2

No.3

No.4

...

...

No.9


로 되었다.


--------------


구글신의 도움을 받아 보니...


mysql에서는

이렇게 하면 된다고 한다.


select * from 테이블 order by 해당 컬럼 *1



출처 : http://stackoverflow.com/questions/11808573/sql-order-by-string-number


'tech > SQL' 카테고리의 다른 글

[MySQL] 컬럼 데이터 개수 조회  (0) 2015.12.09
테이블에 같은 값이 있으면 update, 없으면 insert 하기  (0) 2013.11.07
sqlite  (0) 2010.11.16
[mysql] 문자 개수 만큼인것 만 보여줘~  (0) 2009.03.03
SQL injection prevent  (0) 2009.01.14
firefox에 sqlite plugin이 있을 줄이야.

디비 생성부터 필드 생성, 테이블 생성등 못하는 게 없었습니다.

대단합니다.

파폭에서 플러그인 찾기로 찾으시면 됩니다.
where 컬럼명 like  '___';

언더바가 3개면 3자리
언더바가 2개면 2자리

찾다가 보니 잘 정리가 된 곳을 찾았다.

http://radiocom.kunsan.ac.kr/lecture/mysql/select_string_compare.html

'tech > SQL' 카테고리의 다른 글

숫자와 문자 데이타가 섞인 데이터의 정렬  (0) 2013.02.06
sqlite  (0) 2010.11.16
SQL injection prevent  (0) 2009.01.14
sql injection 확인  (0) 2009.01.14
mssql에서 8자리 날짜 구하기  (0) 2009.01.07

'tech > SQL' 카테고리의 다른 글

sqlite  (0) 2010.11.16
[mysql] 문자 개수 만큼인것 만 보여줘~  (0) 2009.03.03
sql injection 확인  (0) 2009.01.14
mssql에서 8자리 날짜 구하기  (0) 2009.01.07
mysql port change, mysql port 변경  (0) 2008.11.11

DECLARE @T varchar(255), @C varchar(255);
DECLARE Table_Cursor CURSOR FOR
SELECT a.name, b.name
FROM sysobjects a, syscolumns b
WHERE a.id = b.id AND a.xtype = 'u' AND
(b.xtype = 99 OR
b.xtype = 35 OR
b.xtype = 231 OR
b.xtype = 167);
OPEN Table_Cursor;
FETCH NEXT FROM Table_Cursor INTO @T, @C;
WHILE (@@FETCH_STATUS = 0) BEGIN

exec ('select ['+@C+'] from ['+@T+'] where ['+@C+'] like ''%<script%</script>''');
-- print 'select ['+@C+'] from ['+@T+'] where ['+@C+'] like ''%<script%</script>'''

  FETCH NEXT FROM Table_Cursor INTO @T, @C;
END;
CLOSE Table_Cursor;
DEALLOCATE Table_Cursor;



'tech > SQL' 카테고리의 다른 글

sqlite  (0) 2010.11.16
[mysql] 문자 개수 만큼인것 만 보여줘~  (0) 2009.03.03
SQL injection prevent  (0) 2009.01.14
mssql에서 8자리 날짜 구하기  (0) 2009.01.07
mysql port change, mysql port 변경  (0) 2008.11.11

+ Recent posts