asp.net 한자의 병음 알파벳에 따라 데이터베이스 검색 (LINQ 호출 방법 첨부)
방법2: 검색이 필요한 표에 검색된 필드의 내용에 대응하는 병음을 저장하는 데 사용할 필드를 추가하고 검색할 때 이 두 필드를 동시에 조회한다. 이런 방법은 가능하지만 데이터베이스 저장의 크기를 증가시킬 수 있다.
방법3: 데이터베이스에 함수를 만들어 질의문을 실행할 때 이 함수를 통해 검색을 전환합니다. 함수는 다음과 같습니다.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: xoyozo
-- Create date: 2010-4-17
-- Description:
-- =============================================
CREATE FUNCTION fun_getPY
(
@str NVARCHAR(4000)
)
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @word NCHAR(1),@PY NVARCHAR(4000)
SET @PY=''
WHILE len(@str)>0
BEGIN
SET @word=left(@str,1)
SET @PY=@PY+(CASE WHEN unicode(@word) BETWEEN 19968 AND 19968+20901
THEN (SELECT TOP 1 PY FROM (
SELECT 'A' AS PY,N'�' AS word
UNION ALL SELECT 'B',N' '
UNION ALL SELECT 'C',N'�e'
UNION ALL SELECT 'D',N'�z'
UNION ALL SELECT 'E',N'��'
UNION ALL SELECT 'F',N'�v'
UNION ALL SELECT 'G',N'�B'
UNION ALL SELECT 'H',N'��'
UNION ALL SELECT 'J',N'�h'
UNION ALL SELECT 'K',N'�i'
UNION ALL SELECT 'L',N'�w'
UNION ALL SELECT 'M',N'��'
UNION ALL SELECT 'N',N'��'
UNION ALL SELECT 'O',N'�a'
UNION ALL SELECT 'P',N' '
UNION ALL SELECT 'Q',N'��'
UNION ALL SELECT 'R',N'�U'
UNION ALL SELECT 'S',N'�R'
UNION ALL SELECT 'T',N'�X'
UNION ALL SELECT 'W',N'�F'
UNION ALL SELECT 'X',N'�R'
UNION ALL SELECT 'Y',N'�'
UNION ALL SELECT 'Z',N'��'
) T
WHERE word>=@word COLLATE Chinese_PRC_CS_AS_KS_WS
ORDER BY PY ASC) ELSE @word END)
SET @str=right(@str,len(@str)-1)
END
RETURN @PY
END
사용 방법:
select * from where fun_getPY( ) like N'%zgr%'
이 방법은 가장 빠르고 편리하다. 테스트를 통해 문장표에서 제목의 자모를 검색하면 이 함수를 사용하지 않는 검색의 약 3배가 소모되며, 작은 데이터 양의 프로젝트에 배치하는 비용이 매우 낮다고 믿는다.
LINQ 모드 작업
LINQ를 처음 배운 친구가 맞을지도 몰라요.dbml 파일이 익숙하지 않아서 데이터베이스에 있는 테이블을 직접 드래그할 수 있습니다.dbml의 왼쪽에 저장 프로세스, 함수 등을 오른쪽으로 드래그하면 논리에서 바로 사용할 수 있다. 다음은 예이다.
DataClasses1DataContext db = new DataClasses1DataContext();
var q = from d in db.Documents
where d.Title.Contains("zgr") || db.fun_getPY(d.Title).Contains("zgr")
select d;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.