문자열 가나다 검색 WHERE 문장(MSSQL, MYSQL)

가나다 검색방식입니다.


SELECT 명령을 보낼 때 WHERE 조건절에 들어가는 내용을 적는 방식인데
SQL 서버별로 조금 차이가 있습니다.

Button1~  은 해당 버튼을 클릭한 경우에 그 이벤트를 받아 명령문이 선택되는
방식이기 때문입니다.
서버의 성명을 가진 항목명(field name) 이 name 인 것으로 이해하면 되겠습니다.


1.  MSSQL

if(_w == "Button1") _s = "name < '가'";
elif(_w == "Button2") _s = "name >= '가' AND name < '나'";
elif(_w == "Button3") _s = "name >= '나' AND name < '다'";
elif(_w == "Button4") _s = "name >= '다' AND name < '라'";
elif(_w == "Button5") _s = "name >= '라' AND name < '마'";
elif(_w == "Button6") _s = "name >= '마' AND name < '바'";
elif(_w == "Button7") _s = "name >= '바' AND name < '사'";
elif(_w == "Button8") _s = "name >= '사' AND name < '아'";
elif(_w == "Button9") _s = "name >= '아' AND name < '자'";
elif(_w == "Button10") _s = "name >= '자' AND name < '차'";
elif(_w == "Button11") _s = "name >= '차' AND name < '카'";
elif(_w == "Button12") _s = "name >= '카' AND name < '타'";
elif(_w == "Button13") _s = "name >= '타' AND name < '파'";
elif(_w == "Button14") _s = "name >= '파' AND name < '하'";
elif(_w == "Button15") _s = "name >= '하' AND name < 'a'";
elif(_w == "Button16") _s = "name >='a'";

MSSQL 에서는 binary 함수가 작동되지 않습니다.
다음과 같은 방식으로도 사용합니다.

select distinct(name)
FROM view_client
WHERE convert(varbinary(100),name) >= '가' AND convert(varbinary(100),name) < '나'

2.  MYSQL

if(_w == "Button4") _s = "WHERE binary(name) >= '가' AND binary(name) < '나'";
elif(_w == "Button5") _s = "WHERE binary(name) >= '나' AND binary(name) < '다'";
elif(_w == "Button6") _s = "WHERE binary(name) >= '다' AND binary(name) < '라'";
elif(_w == "Button7") _s = "WHERE binary(name) >= '라' AND binary(name) < '마'";
elif(_w == "Button8") _s = "WHERE binary(name) >= '마' AND binary(name) < '바'";
elif(_w == "Button9") _s = "WHERE binary(name) >= '바' AND binary(name) < '사'";
elif(_w == "Button10") _s = "WHERE binary(name) >= '사' AND binary(name) < '아'";
elif(_w == "Button11") _s = "WHERE binary(name) >= '아' AND binary(name) < '자'";
elif(_w == "Button12") _s = "WHERE binary(name) >= '자' AND binary(name) < '차'";
elif(_w == "Button13") _s = "WHERE binary(name) >= '차' AND binary(name) < '카'";
elif(_w == "Button14") _s = "WHERE binary(name) >= '카' AND binary(name) < '타'";
elif(_w == "Button15") _s = "WHERE binary(name) >= '타' AND binary(name) < '파'";
elif(_w == "Button16") _s = "WHERE binary(name) >= '파' AND binary(name) < '하'";
elif(_w == "Button17") _s = "WHERE binary(name) >= '하'";

binary(name) 으로 하지 않고 단순하게 항목명 name 만 줄 경우에는
ㄱ 을 찾았을때 ㄴ 이름이 같이 나온다.
binary(name) 로 하니 정확하다.


SELECT * FROM `movie` WHERE binary(mv_kr) >= '가' AND binary(mv_kr) < '나';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值